ColecoDS - Improved

wavemotion

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

V4.2: 14-Dec-2021 by wavemotion-dave
  • Allow mapping of Super Action Controller buttons.
  • Overlay support - three games supported (for now) + Generic.
  • Minor cleanups to VDP and better commenting.

Preliminary support of Super Action Controller (just the buttons... not yet the Spinner) and overlay support (just 3 games for now: Mousetrap, Wargames and Temple to Apshai...). Use 'Game Options' to pick your overlay (Generic is the default).

Enjoy!

1639498174266.png


Edit: Added 2 more overlays ... Spy Hunter and Fix-Up the Mix-Up.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
After playing with the overlays tonight, I really like the slightly larger keypad. Maybe I'm just getting old :)

I'm thinking of switching out the original smaller blue/white themed keyboard for something a bit bigger (to match the new overlay size) and with a font that matches almost exactly the original Colecovision Keypad (they were not original - it was just Times New Roman).

1639523681853.png


Thoughts of any kind on this main keypad layout?
 

Thee_Stranger

Unknown Member
Member
Joined
Dec 12, 2020
Messages
161
Trophies
0
XP
541
Country
United States
After playing with the overlays tonight, I really like the slightly larger keypad. Maybe I'm just getting old :)

I'm thinking of switching out the original smaller blue/white themed keyboard for something a bit bigger (to match the new overlay size) and with a font that matches almost exactly the original Colecovision Keypad (they were not original - it was just Times New Roman).

View attachment 289703

Thoughts of any kind on this main keypad layout?
I think it looks better than it did, aesthetically. Bigger is pretty much always better, especially with touchscreen buttons. And yes, it looks authentic to the actual numerical pad on the Coleco. ^^
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
Yeah, I'm digging it as well. I put out 4.2a with the reskin of the keypad overlay plus cleaned up the Mouse Trap overlay.

It's really too bad the Colecovision didn't make better use of the keypad. Most games only used it to select the starting game level/players. So few games needed (or even came with) overlays.

Edit: just put up 4.2b with a couple more overlays... and finally fixed the problem with save/load states so that code changes don't cause problems. In all prior releases, when you updated to a new version of ColecoDS, older save states wouldn't work. The problem was in the Z80 emulation - we save the Stack Pointer and Program Counter but those are relative to wherever in DS memory the 64K Coleco emulated memory was stored. If I change code and that 64k chunk of Coleco memory relocates (as it can due via the compiler/linker), the relative offsets would be crap - and the game would crash if you tried to load an old save state. So now I save the offsets of the SP/PC and re-baseline them back to the 64K Coleco Memory map (so it doesn't matter if this moves around from build-to-build). This should be much more robust for save/load states going forward.
 
Last edited by wavemotion,

Thee_Stranger

Unknown Member
Member
Joined
Dec 12, 2020
Messages
161
Trophies
0
XP
541
Country
United States
Yeah, I'm digging it as well. I put out 4.2a with the reskin of the keypad overlay plus cleaned up the Mouse Trap overlay.

It's really too bad the Colecovision didn't make better use of the keypad. Most games only used it to select the starting game level/players. So few games needed (or even came with) overlays.

Edit: just put up 4.2b with a couple more overlays... and finally fixed the problem with save/load states so that code changes don't cause problems. In all prior releases, when you updated to a new version of ColecoDS, older save states wouldn't work. The problem was in the Z80 emulation - we save the Stack Pointer and Program Counter but those are relative to wherever in DS memory the 64K Coleco emulated memory was stored. If I change code and that 64k chunk of Coleco memory relocates (as it can due via the compiler/linker), the relative offsets would be crap - and the game would crash if you tried to load an old save state. So now I save the offsets of the SP/PC and re-baseline them back to the 64K Coleco Memory map (so it doesn't matter if this moves around from build-to-build). This should be much more robust for save/load states going forward.
That's awesome. I will be downloading the new revised version directly.

Couple questions, though: Is there any known problems with Spy Hunter? Or did I just get a bad ROM? No enemy cars or anything ever spawn.

Also, is there any known issues with Tapper? I'm experiencing some minor graphical glitches in the text between levels. Not a huge deal at all, as the game itself runs flawlessly near as I can tell. Just curious if this is common.
 
  • Like
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
Re: Spy Hunter - you're right! Something is wonky there for sure... My first thought was that the RAM was not truly randomized on emulator power-up (some games require that) and so I added a good randomizer of RAM but that didn't make any difference (but it is, technically, "more accurate"). I'll keep digging.

Re: Tapper... I don't see any graphical issues. I can only clear about 9 or 10 screens (2 of those shake-can intermissions) but didn't see anything obvious. But it is early and maybe I haven't had enough coffee yet :)

Edit: I think I have a fix for Spy Hunter... stay tuned.
 
Last edited by wavemotion,

wavemotion

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

V4.3: 16-Dec-2021 by wavemotion-dave
  • More overlays added - up to 10 controller overlays.
  • Adjust CPU timing slightly to fix Spy Hunter (cars now spawn) and Frantic.

@Thee_Stranger, I didn't see anything obviously wrong with graphics in Tapper - played for about 5 minutes. If you see any issues with this build - just snap a pic on your phone and attach ;)
 

Thee_Stranger

Unknown Member
Member
Joined
Dec 12, 2020
Messages
161
Trophies
0
XP
541
Country
United States
https://github.com/wavemotion-dave/ColecoDS

V4.3: 16-Dec-2021 by wavemotion-dave
  • More overlays added - up to 10 controller overlays.
  • Adjust CPU timing slightly to fix Spy Hunter (cars now spawn) and Frantic.

@Thee_Stranger, I didn't see anything obviously wrong with graphics in Tapper - played for about 5 minutes. If you see any issues with this build - just snap a pic on your phone and attach ;)
I downloaded the new version, and it doesn't seem to contain any of the new controller overlays. Any idea? Can confirm that Spy Hunter is indeed fixed now, though. :D

IMG_20211216_102805296.jpg

This is the only graphical glitch I'm experiencing with Tapper. Like I said, it's just the text between levels. Game itself seemingly runs flawlessly.
 
  • Like
Reactions: banjo2

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
I downloaded the new version, and it doesn't seem to contain any of the new controller overlays. Any idea? Can confirm that Spy Hunter is indeed fixed now, though. :D

View attachment 289997

This is the only graphical glitch I'm experiencing with Tapper. Like I said, it's just the text between levels. Game itself seemingly runs flawlessly.
Interesting... I don't see that at all. Hmmm... You're running a DSi or DS-LITE? If DSi - how are you launching the emulator? TWL++ or Unlaunch or other?

Overlays need to be selected in Game Options before you get into this emulation running screen. You should have 10 choices... Generic plus 9 specific games.
 
  • Like
Reactions: banjo2

Thee_Stranger

Unknown Member
Member
Joined
Dec 12, 2020
Messages
161
Trophies
0
XP
541
Country
United States
Interesting... I don't see that at all. Hmmm... You're running a DSi or DS-LITE? If DSi - how are you launching the emulator? TWL++ or Unlaunch or other?

Overlays need to be selected in Game Options before you get into this emulation running screen. You should have 10 choices... Generic plus 9 specific games.
I'm using a N3DSXL and launching via TWL++. I'm assuming the 3DS is emulating a DSi? Not sure how I check that.

And, ohhh. I thought you meant you added 10 more overlays on top of the existing ones. Everything's good then. ^^
 
  • Like
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
Ok... well, that is odd! My test units are a DSi running Unlaunch, DSi LL running TWL++ and a DS-LITE running some craptastic R4i clone and menu system and everything looks good for Tapper under those.

One possible thought - are you running the standard Coleco BIOS? Many people run hacked BIOS that reduces or eliminates the delay time... those are generally OK (I use one myself that does a 3.7s wait instead of 12.5 secs) but some of those are "invasive" to the point where it might not be a truly compatible BIOS.

But more likely it's just another timing bug in ColecoDS - life with emulation is rarely perfect! :)
 

Thee_Stranger

Unknown Member
Member
Joined
Dec 12, 2020
Messages
161
Trophies
0
XP
541
Country
United States
Ok... well, that is odd! My test units are a DSi running Unlaunch, DSi LL running TWL++ and a DS-LITE running some craptastic R4i clone and menu system and everything looks good for Tapper under those.

One possible thought - are you running the standard Coleco BIOS? Many people run hacked BIOS that reduces or eliminates the delay time... those are generally OK (I use one myself that does a 3.7s wait instead of 12.5 secs) but some of those are "invasive" to the point where it might not be a truly compatible BIOS.

But more likely it's just another timing bug in ColecoDS - life with emulation is rarely perfect! :)
I just realized that TWL++ says "DSi" upon boot. DERP. But your question was probably already answered when I told you I was booting in TWL++

As far as the Coleco BIOS, I couldn't say for sure. I do remember I had a bit of a hard time actually finding it, and I think I may have actually had to rename the file so that the emulator could find it. It was either that or the 5200 emulator I had to do that for.

Yeah, exactly. Like I said, it's pretty much a non-issue. I can certainly live with some slightly glitched text between levels. And Tapper is the only game so far that I've experienced any sort of graphical glitches whatsoever.
 

wavemotion

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

V4.4: 18-Dec-2021 by wavemotion-dave
  • Added option for "Max Sprites" to set to original HW limit of 4 vs 32.
  • New Vertical Sync option (default ON for DSi and above) to reduce tearing.
  • Fixed Save/Load state so it doesn't break on every new release.
  • Slight adjustment to Z80 CPU timing for better accuracy.

Significant updates - the Colecovision is capable of using 32 sprites but one "weakness" was that only 4 of them can be on a horizontal line at a time (after 4, the sprites would simply not show - they would be invisible). For ColecoDS, I raised this to 32 so that all sprites show all the time - which is great for most games... but it turns out a few game actually rely on this limit of 4 as a sort of sprite-masking effect. For example, in Antarctic Adventure: when the penguin falls into a crevasse, the bottom half of the penguin should not be shown but with a Sprite Limit of 32 the entire penguin would show. Anyway, 4.4. fixes this by allowing you to turn on 4 vs 32 as a sprite limit... the default is 32 except for the 3 games I know of that really want 4 as a limit.

The new Vertical Sync option is something I'm pretty happy about - the Colecovision has enough trouble scrolling the screen but it's made worse by the slight tearing effect where the screen is updated mid-draw. I've synchronized with the DS vertical sync so as to reduce tearing (e.g. in Cosmic Avenger or BC Quest for Tires when the screen scrolls, there is less noticeable artifacts and glitches). This comes at a CPU cost so it's only defaulted to ON for the DSi and not the DS-LITE/PHAT (though you can turn it on for many games and still hit the full 60FPS).

I also finally fixed the bug in Load/Save states so new releases won't cause your old save states to break.

Enjoy!
 
Last edited by wavemotion,

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
737
Trophies
0
Age
41
XP
2,873
Country
France
I just realized that TWL++ says "DSi" upon boot. DERP. But your question was probably already answered when I told you I was booting in TWL++

As far as the Coleco BIOS, I couldn't say for sure. I do remember I had a bit of a hard time actually finding it, and I think I may have actually had to rename the file so that the emulator could find it. It was either that or the 5200 emulator I had to do that for.

Yeah, exactly. Like I said, it's pretty much a non-issue. I can certainly live with some slightly glitched text between levels. And Tapper is the only game so far that I've experienced any sort of graphical glitches whatsoever.

I will check on my side when possible. What I can say is that there is something different with N3DS and regular DSI/O3DS. For example dsx86 is running on older hardware but not on N3DS. Maybe there is a timing issue or something in TWMenu or the DSi part itself from Nintendo.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
Something I left in on this build is a Z80 Cycles setting which really nobody (including me!) should play with. But it allows very slight timing adjustments to the Z80 core which I’m sure is not 100% accurate. You can try playing with these settings for Tapper to see what effect it has. It also might cause the game to not run. Powerful options come with great responsibility 😁
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
919
Trophies
1
XP
7,391
Country
United States
Another big one...

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

V4.5: 21-Dec-2021 by wavemotion-dave
  • Full support for Spinner/Trackball. Map SpinX, SpinY in key settings.
  • Five different sensitivities for the Spinner/Trackball in Game Options.
  • Added ability to Quit Emulator (will return to TWL++ or power off depending on launcher).
  • Unified handling of UI in Redefine Keys and Game Options so they work the same.
  • Many small fixes and tweaks under the hood - Sudoku fixed.

Finally - support for Spinners (X/Y) and the Roller Controller (Trackball). This also means that steering controller games work without special hacked ROMs.

If you're using a known good romset (hint: AA forums), games like Turbo, Slither, Victory and Destructor should all auto-map to the new controller handling perfectly. But you can also set it up - you can now map to both P1 and P2 controllers and do all kinds of cool things in the controller mapping area. I've also provided 5 sensitivity levels for the spinner/trackball controls in the general GAME OPTIONS area. I think the default works well enough but we all have different tastes and you may want your car to steer more or less with presses on the D-PAD. A real analog wheel is hard to emulate - I'm going to try adding it to the touch screen but for now, the sensitivity settings should provide enough configuration to please the casual player.

In order to facilitate this fairly massive new configuration handling, I've wiped everyone's config back to defaults - sorry :)

1640097103576.png
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    The Real Jdbye @ The Real Jdbye: don't mind me, just liking all of SDIO's posts, they deserve it for...