ColecoDS - Improved

Cris1997XX

Well-Known Member
Newcomer
Joined
Oct 31, 2021
Messages
91
Trophies
0
Age
20
XP
179
Country
Italy
Wow, the sound is perfect now! I've encountered an issue though. I tried playing the homebrew Super Pac-Man port, and the intro/credits screen looks just fine. But everything gets fucked up right after and it stops working properly
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Wow, the sound is perfect now! I've encountered an issue though. I tried playing the homebrew Super Pac-Man port, and the intro/credits screen looks just fine. But everything gets fucked up right after and it stops working properly
Check the release notes / readme. It’s on the list :)

There are about 12 games that won't play right now ... out of about 300 tried.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
https://github.com/wavemotion-dave/ColecoDS

V3.5: 24-Nov-2021 by wavemotion-dave
  • Sound finally fixed with use of maxmod library!
  • Updated CRC computation to match real crc32.
  • High scores, save states and key options all changed - sorry!
  • Lots of cleanups as timer permitted.
Everything changed... sorry guys - with the new library and some serious cleanup of CRC handling, all of the stuff that is saved to SD card (high scores, key options and .SAV states) are changed and we start fresh with version 3.5. This is where I should have been 10 days ago ... I apologize for the turmoil getting this straightened out on this one.

Now I need to go get some personal high-scores ... with improved sound it will be easy :)



Edit: V3.5a released to fix audio glitches in games that utilize all 6 audio channels (Mecha 8, Wizard of Wor, etc) - needed to divide by 2 after adding the sound channels together.

Edit#2: Look what I dug up from the basement! Gonna hook this back up this weekend and see how close the emulation really is :)

1637776988050.png
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
https://github.com/wavemotion-dave/ColecoDS

V3.6: 25-Nov-2021 by wavemotion-dave
  • New game options for frame skip, frame blend, auto fire, etc.
  • Fixed pop noise on some of the SGM-AY games.
  • Minor menu cleanup for better visual presentation.
Big change here is the new per-game options beyond simple keymaps.
Now we can turn on frame skip, frame blend, and auto-fire for both Button 1 and Button 2.

The new Frame Skip option is designed for the older DS-LITE/PHAT for the more complicated Super Games like Mecha 8 or Princess Quest that didn't quite reach full speed on the older hardware... this allows those games to be fully playable on the ancient DS hardware. The DSi doesn't need it - everything is full speed with no frameskip needed!

Frame Blend no longer is selectable as you load the game - it's a config option saved on a per-game basis. On the DSi this blends the last 2 frames together (at the cost of a bit of CPU time) which makes small bullets and such much more visible on the tiny screen. The DSi LL/XL doesn't need it - the screen is not only larger but also the LL/XL holds onto the pixels a bit longer much like an old CRT/TV would (making the LL/XL the best retro-handled available!).

1637847574371.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Nothing new to release today - but I did spend a few hours last night and another couple this morning looking at the 'known issues' list. The #1 question I get asked is "did you know game X doesn't work?" and or "Can you fix X?" - and 99% of the time it's already marked as a known issue in the readme doc which means I've already looked at it and haven't figured out a solution yet. To paraphrase the imortal words of @RocketRobz - if I knew what the problem was, I'd have already fixed it :)

So here's where we are at with ColecoDS. I'll add some notes below as to my "best guess" as to what the problem is in case there is some intrepid developer 10 years from now who wants to dust this stuff off and make the emulators even better.

Group 1:
  • Fathom won't render screen properly. Unknown cause.
  • Sudoku has graphical issues (still playable).
  • Super Pac Man has major graphical issues.
For the above group, my best guess is that the VDP (tms9918 display chip) emulation isn't perfect. In the technical documentation (which I recently uploaded to the github page for this project) it's clear that the VDP address/control latch should be reset on every data/control read/write... but it's not. ColEM got that wrong - and they knew it because there is a comment in the original ColEM project source that says it had to disable the reset of the latch to get some games to run right... and it's true... when I try to handle the latch correctly, it causes more problems than doing it wrong. So ... for now... wrong it is!

Group 2:
  • Deep Dungeon Adventures won't run.
  • Uridium won't run.
The above group won't start... they are both Super Game and/or MegaCart modules though 95% of other games in those categories start fine. My best guess on the first 2 games is that they are reading some port during startup and not seeing something they expect... the main reason I'm guessing this is that the "secret Easter egg" game on Deep Dungeon Adventures works when pressing and holding the #5 key on the 2nd controller - so the game is clearly running - but not starting up the main game properly.

Group 3:
  • Super Space Acer crashes after a few seconds of play.
  • Missile-Strike crashes about 10-15 seconds into the gameplay.
  • Astrostorm crashes about 10-15 seconds into the gameplay.
  • Arno Dash and Diamond Dash 2 glitch out soon after loading.
  • Pillars won't run - crashes a few seconds after starting.
  • Vexxed won't run - crashes a few seconds after starting.
This group is less known... 6 of those 7 the games are from two developers very new to the homebrew scene and at least one of them doesn't have real colecovision hardware to test on... so it's possible they are doing something a bit unusual that works on some emulators and not others. As a wild-ass guess... I'd say they are maybe reading some area of memory or some port they shouldn't and/or doing so at the wrong time and the emulator doesn't behave exactly like a real system would.

Group 4:
  • Ghostblaster starts but controls don't work.
  • Pitfall II Arcade port (from SG1000) shows title screen but button press isn't recognized to start.
The two games that won't start because neither recognizes a button press. Might be related to the "guess" I had above for Group 2. I'm fairly sure I've got the input bits set correctly when reading the joystick port but maybe real hardware does it a little differently.

Group 5:
  • 64K Activision PCB carts have no EEPROM support (Black Onyx, Boxxle - both playable without saves).
The EEPROM support is just missing. Haven't found the time to add it - especially given that we have Save/Load State support which is just as good as having the EEPROM support so there's no real loss here.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
https://github.com/wavemotion-dave/ColecoDS

V3.7: 27-Nov-2021 by wavemotion-dave
  • Super DK and Super DK Jr prototypes work now.
  • Max Game ROM filename extended to 128 bytes.
  • Tries to start in /roms or /roms/coleco if possible.
  • Slight tweaks to main menu graphics to clean them up.
  • Code cleanup and commenting of source files.

Nothing too exciting - more of a 'spit-and-polish" release. Most games are running great both on the DSi and older DS-LITE/PHAT hardware. Pretty happy with the performance and the sound is all worked out nicely. I did manage to get the Adam-converted prototypes of DK and DK Jr to play - the "Super DK Jr" is especially worth seeking out as it has the full 4 boards from the arcade and it's really smooth. Super DK is less exciting as it does add some climbing cutscenes and has the 4th "Pie Factory" level... but they didn't finish it so the sprite collisions on that pie factor level don't work (you can just climb up without being killed).

I did my best to clean up the code and comment it (translating all the original french comments as well as adding tons of new comments in English) so maybe someone else will be able to pick this up and advance it to the next level!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Not ready for a new build, but did check in 3.7a with support for LCD swap. I should have included this in 3.7 - it's trivial to call a single library function to swap top/bottom for those that have a broken screen or one of those 1-screen DS units. Press and hold L+R+X for half a second to swap LCD screens during the game running.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Not ready for a new build but 3.8a is checked in on the trunk with the fix for Pitfall II Arcade homebrew.

It was a controller port read issue - we now mimic ColEM more closely and that's fixed. I'll admit of the 15 games that wouldn't run, PII-Arcade was probably middle-of-the-road in terms of my desire to fix things... but I'll take small wins whenever and wherever!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
https://github.com/wavemotion-dave/ColecoDS

V3.9: 06-Dec-2021 by wavemotion-dave
  • Fix for Pitfall II Arcade Homebrew
  • Improved memory management
  • Shorter keyclick for more responsive keypad touches
  • Improved UI key handling
  • Other cleanups and improvements under the hood
  • Saved states changed again ... sorry!
More spit-and-polish on the UI for key handling - sometimes the YES/NO selection would get a little twitchy and that's all fixed now. Shorter feedback keyclick on the keypad which is much nicer. Removed use floating point library internally for more compact and efficient processing. I fixed a very rare bug in SGM handling but it comes at the cost of having to change the format of the save state ... sorry. Older save states won't load with 3.9 - I'll continue to try not to disrupt that in the future.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Not ready for a new release but I did check in 3.9a on the trunk. I put in a fix for the VDP that fixes GhostBlaster and fixes graphical glitches in Meteoric Shower.

That's a lot of effort to basically fix one and a half games :)

But a win is a win! The Known Issues list is one smaller (I didn't have the Meteoric Shower glitches on it... didn't know they existed until I found this bug).
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
1639080319418.png


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

V4.0: 09-Dec-2021 by wavemotion-dave
  • Fix GhostBlaster homebrew.
  • Fix for graphical issues in Meteoric Shower
  • Improved DrZ80 core from various web sources
  • Improved VDP handling to more closely mimic real TMS9918a
  • Many small touch-ups and improvements under the hood
  • Speed is through the roof ... even without frameskip, 99% of everything will run full-speed on the older DS-LITE/PHAT.
It's taken a while to get here... and I really wanted 100% compatibility across all 300+ games - but nothing in life is perfect! Enjoy and please seek out and play the Colecovision homebrew Wizard of Wor!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Not ready for a new build yet, but I've corrected the VDP control latch handling which was the source of the Fathom problem (and possibly some other small graphical glitches in other games). So Fathom comes off the 'non-compatibility' list. Unfortunately I found another homebrew to take it's place: Dungeon and Trolls crashes after 10-15 seconds of play.

But it's still good news - the original 139 classic Colecovision games now all run fine... and we're down to about a dozen homebrews that still need to be fixed.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Dave, since V4 it seems that bios needs to be in /roms/bios, it does not work anymore in the emu folder.
Yep! Good catch. Fixed - version 4.1 released.

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

V4.1: 11-Dec-2021 by wavemotion-dave
  • VDP Timing fixes - Fathom now runs.
  • Fixed loading of coleco.rom bios if in same directory as emulator.
  • Minor Z80 cleanups for more accurate timing.
 

Thee_Stranger

Active Member
Newcomer
Joined
Dec 12, 2020
Messages
43
Trophies
0
XP
112
Country
United States
I am currently enjoying both this and your Atari 5200 DS emulators immensely. Just wanted to thank you for all your honorable hard work, and contributing to my 3DS being my ultimate retro video game machine. Do you think there will ever be a way to use controller overlays with this in the future? That would be absolutely insanely cool.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
586
Trophies
1
XP
3,995
Country
United States
Thanks for the feedback, @Thee_Stranger - it's much appreciated!

Overlays are definitely "on the list" but have been lower priority given that only a few games really require them. Unlike my Nintellivision which pretty much needed support to make some of the games playable. In any event, I'd like to get it working on ColecoDS. Since there are a only about two dozen games that even had overlays, maybe I'll just bake them into the main program rather than some kind of external method of hooking them in.

Edit: Maybe!
1639490237517.png
 
Last edited by wavemotion,
General chit-chat
Help Users
    KennieDaMeanie @ KennieDaMeanie: https://piunikaweb.com/2022/01/15/nvidia-shield-tv-plex-and-other-apps-not-working-after-android-...