Skip to content

Commit

Permalink
V6.7: 10-Apr-2022 by wavemotion-dave
Browse files Browse the repository at this point in the history
* Casio PV-2000 support (.pv rom files) - all 11 games run fine.
* Improved emulated memory access to gain almost 1 frame of performance.
* Numerous small cleanups under the hood.
  • Loading branch information
wavemotion-dave committed Apr 10, 2022
1 parent 6a32235 commit 356ff5f
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 9 deletions.
Binary file modified ColecoDS.nds
Binary file not shown.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include $(DEVKITARM)/ds_rules

export TARGET := ColecoDS
export TOPDIR := $(CURDIR)
export VERSION := 6.6
export VERSION := 6.7

ICON := -b $(CURDIR)/logo.bmp "ColecoDS $(VERSION);wavemotion-dave;https://github.com/wavemotion-dave/ColecoDS"

Expand Down
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ to be very close to the CV in terms of hardware.
Often only the IO/Memory was different. As such,
ColecoDS also allows cartridge and sometimes tape
games from "cousin" systems to be played -
namely the Sord M5, the Memotech MTX, the SG-1000
and the MSX1.
namely the Sord M5, the Memotech MTX, the SG-1000/3000,
the Casio PV-2000 and the venerable MSX1.

If you want to play Sord M5 games, you will
also need an 8k sordm5.rom bios in the same
Expand All @@ -32,6 +32,8 @@ ADAM computer emulation requires eos.rom and writer.rom

Spectravideo SVI emulation requires svi.rom BIOS

Casio PV-2000 requires pv2000.rom BIOS

Features :
-----------------------
* Colecovision game support (.rom or .col files)
Expand All @@ -42,6 +44,7 @@ Features :
* Sega SC-3000 game support (.sc roms)
* Sord M5 game support (.m5 roms) - requires sordm5.rom BIOS
* Spectravideo SVI support (.cas) - requires svi.rom BIOS
* Casio PV-2000 support (.pv roms) - requires pv2000.rom BIOS
* MSX1 game support (.msx or .rom or.cas) up to 512K
* Memotech MTX game support (.mtx or .run) - single loader games only.
* Full Controller button mapping and touch-screen input.
Expand Down Expand Up @@ -150,6 +153,10 @@ Sega SC-3000 Compatibility :
-----------------------
This emulator supports .sc files as ROM only (not cassettes) but ColecoDS will support the amazing SC-3000 Survivors Multi-Cart and MEGA-Cart. Strongly prefer the Multi-Cart as it's smaller and contains the same selection of tape games. Just rename the 2MB or 4MB binary as .sc to load in ColecoDS.

Casio PV-2000 Compatibility :
-----------------------
This emulator supports .pv files as ROM only (not cassettes). Rename any .bin files you find as .pv so the emulator will load them correctly.

Controllers :
-----------------------
You can map buttons to either P1 or P2 controllers.
Expand Down Expand Up @@ -224,6 +231,11 @@ would personally try them:

Versions :
-----------------------
V6.7: 10-Apr-2022 by wavemotion-dave
* Casio PV-2000 support (.pv rom files) - all 11 games run fine.
* Improved emulated memory access to gain almost 1 frame of performance.
* Numerous small cleanups under the hood.

V6.6: 07-Apr-2022 by wavemotion-dave
* CAS icon implemented to provide a menu of cassette-based actions including swapping tape/disk for multi-load games.
* SC-3000 emulated more fully with support for the SC-3000 Survivors Multi-Cart.
Expand Down
Binary file modified arm9/gfx_data/pdev_bg0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 6 additions & 5 deletions arm9/source/colecoDS.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ u8 bSordBiosFound = false;
u8 bMSXBiosFound = false;
u8 bSVIBiosFound = false;
u8 bAdamBiosFound = false;
u8 bPV2000BiosFound = false;

volatile u16 vusCptVBL = 0; // We use this as a basic timer for the Mario sprite... could be removed if another timer can be utilized

Expand Down Expand Up @@ -1756,10 +1757,6 @@ void colecoDSInit(void)
dmaVal = *(bgGetMapPtr(bg0b)+24*32);
dmaFillWords(dmaVal | (dmaVal<<16),(void*) bgGetMapPtr(bg1b),32*24*2);

// Put out the initial messages looking for a file system
AffChaine(2,6,0,"SEARCH FAT SYSTEM ... ");
AffChaine(2,7,0,"FAT SYSTEM FOUND !");

// Find the files
colecoDSFindFiles();
}
Expand Down Expand Up @@ -1975,6 +1972,7 @@ void LoadBIOSFiles(void)
bMSXBiosFound = false;
bSVIBiosFound = false;
bAdamBiosFound = false;
bPV2000BiosFound = false;

// -----------------------------------------------------------
// First load Sord M5 bios - don't really care if this fails
Expand All @@ -1997,6 +1995,7 @@ void LoadBIOSFiles(void)
if (fp == NULL) fp = fopen("/data/bios/pv2000.rom", "rb");
if (fp != NULL)
{
bPV2000BiosFound = true;
fread(PV2000Bios, 0x4000, 1, fp);
fclose(fp);
}
Expand Down Expand Up @@ -2157,13 +2156,15 @@ int main(int argc, char **argv)
// ---------------------------------------------------------------
if (bColecoBiosFound)
{
u8 idx = 9;
u8 idx = 6;
AffChaine(2,idx++,0,"LOADING BIOS FILES ..."); idx++;
AffChaine(2,idx++,0,"coleco.rom BIOS FOUND"); idx++;
if (bMSXBiosFound) {AffChaine(2,idx++,0,"msx.rom BIOS FOUND"); idx++;}
if (bSVIBiosFound) {AffChaine(2,idx++,0,"svi.rom BIOS FOUND"); idx++;}
if (bSordBiosFound) {AffChaine(2,idx++,0,"sordm5.rom BIOS FOUND"); idx++;}
if (bPV2000BiosFound) {AffChaine(2,idx++,0,"pv2000.rom BIOS FOUND"); idx++;}
if (bAdamBiosFound) {AffChaine(2,idx++,0,"eos.rom and writer.rom FOUND"); idx++;}
AffChaine(2,idx++,0,"SG-1000/3000 AND MTX BUILT-IN"); idx++;

AffChaine(2,idx++,0,"TOUCH SCREEN / KEY TO BEGIN"); idx++;

Expand Down
2 changes: 1 addition & 1 deletion arm9/source/colecoDS.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <string.h>
#include "cpu/z80/Z80_interface.h"

#define VERSIONCLDS "6.6"
#define VERSIONCLDS "6.7"

//#define DEBUG_Z80 YES
//#define FULL_DEBUG
Expand Down

0 comments on commit 356ff5f

Please sign in to comment.