+nanochess Posted August 30, 2011 Share Posted August 30, 2011 Hi. Does anyone have a dump of a Colecovision ROM for Europe 50hz? (BIOS location 0069H = 32H), every ROM site has only the 60 hz version. Just wondering if it exists. Thanks in advance. Quote Link to comment Share on other sites More sharing options...
NIAD Posted August 31, 2011 Share Posted August 31, 2011 This is the only PAL version of the CV BIOS that I have... if I recall correctly, someone posted it on the CV/ADAM Forum not to long ago. It is the "Press fire-button to bypass CV Title Screen" hack. If you don't press a fire-button, the title screen displays normally for 11 seconds. Hope this helps. ColecoVision BIOS (2010) (Unknown) (Fire Button Skip Intro) (PAL).zip Quote Link to comment Share on other sites More sharing options...
newcoleco Posted August 31, 2011 Share Posted August 31, 2011 This is the only PAL version of the CV BIOS that I have... if I recall correctly, someone posted it on the CV/ADAM Forum not to long ago. It is the "Press fire-button to bypass CV Title Screen" hack. If you don't press a fire-button, the title screen displays normally for 11 seconds. Hope this helps. It was me who modified this modded bios rom file. It was in a thread about modding by changing the OS in ColecoVision in order to skip the title screen, and I've decided to make the ROM file properly set as a PAL version by changing the value 60 for 50 at the address memory $0069, which is, based on the Coleco documentation, where the frequency value is hardcoded... and it's named AMERICA in the OS7 BIOS Complete listing, which is weird but... Anyway, mystery solved! Quote Link to comment Share on other sites More sharing options...
+5-11under Posted August 31, 2011 Share Posted August 31, 2011 So, do PAL machines normally have that byte set to 50, or do all CVs, regardless of video format, have that byte set to 60? Quote Link to comment Share on other sites More sharing options...
newcoleco Posted August 31, 2011 Share Posted August 31, 2011 So, do PAL machines normally have that byte set to 50, or do all CVs, regardless of video format, have that byte set to 60? In theory, CBS ColecoVision systems (PAL) should have this value at $0069 set to 50 for 50Hz, yes. I have no clue if it's really the case, but it should be because the official ColecoVision programming documentation declared that particular byte to be set that way : 60 for NTSC and 50 for PAL. Does it affect the hardware? not at all, but it may affect games if they use, for example, this byte to calculate time in seconds rather than simply the number of screen refresh (through NMI interupts). Quote Link to comment Share on other sites More sharing options...
youki Posted September 1, 2011 Share Posted September 1, 2011 I was wondering reading that post, if there is a way to know by sofware if you are running on a PAL or a SECAM machine? Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted September 1, 2011 Share Posted September 1, 2011 (edited) I was wondering reading that post, if there is a way to know by sofware if you are running on a PAL or a SECAM machine? EDIT: rereading your post, I realized you said SECAM. The below applies to the difference between PAL and NTSC. I guess that is what you are referring too? I'm not sure about the colecovision, but I did create such routine on the TI-99/4A (same VDP as the coleco). 1. Turn off interrupt handling on the CPU. 2. Write a loop that: a) reads the VDP status register b) Checks bit 0 in the VDP status register c) if the bit is set then exit loop, otherwise increase a counter 3. Run this loop 10 times and check the value in the counter. The counter value in the PAL system must be higher than on NTSC, because the VDP interrupt flag is not set that often. It's then easy to add an IF statement to set the PAL/NTSC flag based on the highest counter value. How high the counter gets, depends on the used CPU and hardware. So this is something you have to try on the Z80. The below assembly source is for the TMS9900 CPU (a 16 bit processor), but you get the idea. Something similar should be possible on the Z80. I'm not sure if you can mask interrupts on the colecovision though. *-------------------------------------------------------------- * Determine if VDP is PAL or NTSC *-------------------------------------------------------------- LIMI 0 ; Mask interrupts on CPU CLR R1 ; Reset counter LI R2,10 ; We test 10 times RUNLI5 MOV @VDPS,R3 COC @WBIT0,R3 ; Interupt flag set ? JEQ RUNLI6 INC R1 ; Increase counter JMP RUNLI5 RUNLI6 DEC R2 ; Next test JNE RUNLI5 CI R1,>1250 ; Max for NTSC reached ? JLE RUNLI7 ; No, so it must be NTSC ORI CONFIG,PALON ; Yes, it must be PAL, set flag EDIT: Check page 23 in the VDP programmers' manual for details on the interrupt flag. Check http://www.retroclouds.de/atariage/vdp_pg.pdf I believe that on the colecovision you can't turn off interrupt handling on the Z80 CPU, because the VDP interrupt is handled as non-maskable interupt. However you can tell the VDP itself NOT to send an interrupt to the Z80 CPU, by clearing bit 2 in VDP register 1 (see page 20). The interrupt flag in the VDP status register will still be set, so you should be fine. Edited September 1, 2011 by retroclouds Quote Link to comment Share on other sites More sharing options...
youki Posted September 1, 2011 Share Posted September 1, 2011 I guess that is what you are referring too? no, no, i was well asking to determine if the console is PAL or SECAM , not NTSC. To determine PAL vs NTSC there is just one byte in mermory to read. Even if the interest seems limited to know if it is SECAM or PAL (as both are 50hz) , but just by curiosity and because i just had a funny idea i could use in my next game... Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted September 1, 2011 Share Posted September 1, 2011 (edited) I guess that is what you are referring too? no, no, i was well asking to determine if the console is PAL or SECAM , not NTSC. To determine PAL vs NTSC there is just one byte in mermory to read. Even if the interest seems limited to know if it is SECAM or PAL (as both are 50hz) , but just by curiosity and because i just had a funny idea i could use in my next game... ok, got it. Well in that case it's more of theoretical issue. But reading the byte in memory works as long as the BIOS ROM and the VDP are aligned. If you swap one of both, it will not work. Testing the VDP yourself will always work From a "software" point of view both SECAM and PAL are identical, so don't think there's a way to test. Edited September 1, 2011 by retroclouds Quote Link to comment Share on other sites More sharing options...
+nanochess Posted September 1, 2011 Author Share Posted September 1, 2011 This is the only PAL version of the CV BIOS that I have... if I recall correctly, someone posted it on the CV/ADAM Forum not to long ago. It is the "Press fire-button to bypass CV Title Screen" hack. If you don't press a fire-button, the title screen displays normally for 11 seconds. Hope this helps. This is the only PAL version of the CV BIOS that I have... if I recall correctly, someone posted it on the CV/ADAM Forum not to long ago. It is the "Press fire-button to bypass CV Title Screen" hack. If you don't press a fire-button, the title screen displays normally for 11 seconds. Hope this helps. It was me who modified this modded bios rom file. It was in a thread about modding by changing the OS in ColecoVision in order to skip the title screen, and I've decided to make the ROM file properly set as a PAL version by changing the value 60 for 50 at the address memory $0069, which is, based on the Coleco documentation, where the frequency value is hardcoded... and it's named AMERICA in the OS7 BIOS Complete listing, which is weird but... Anyway, mystery solved! Thanks NIAD and newcoleco for the info, maybe simply Colecovision was sold unchanged everywhere and games were adapted, or Donkey Kong runs slower in Europe Quote Link to comment Share on other sites More sharing options...
PkK Posted August 14, 2012 Share Posted August 14, 2012 In theory, CBS ColecoVision systems (PAL) should have this value at $0069 set to 50 for 50Hz, yes. I have no clue if it's really the case, but it should be because the official ColecoVision programming documentation declared that particular byte to be set that way : 60 for NTSC and 50 for PAL. Does it affect the hardware? not at all, but it may affect games if they use, for example, this byte to calculate time in seconds rather than simply the number of screen refresh (through NMI interupts). Sorry for having missed this thread for so long and replying so late. The Europen ColecoVisions I have this byte set to to 50. And I take care in my libcvu library to use this byte in the music playback routine to get the speed correct. Philipp 1 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted August 14, 2012 Author Share Posted August 14, 2012 In theory, CBS ColecoVision systems (PAL) should have this value at $0069 set to 50 for 50Hz, yes. I have no clue if it's really the case, but it should be because the official ColecoVision programming documentation declared that particular byte to be set that way : 60 for NTSC and 50 for PAL. Does it affect the hardware? not at all, but it may affect games if they use, for example, this byte to calculate time in seconds rather than simply the number of screen refresh (through NMI interupts). Sorry for having missed this thread for so long and replying so late. The Europen ColecoVisions I have this byte set to to 50. And I take care in my libcvu library to use this byte in the music playback routine to get the speed correct. Philipp Thank you so much. I'm using this byte in my games to keep speed equal 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.