Jump to content

zCRP

Members
  • Content Count

    42
  • Joined

  • Last visited

Posts posted by zCRP


  1. I tried to contact the designers but they won't respond...

    I do not know enough about electronics to understand what happens there. In fact, I was wondering whether that behaviour depends on hw or sw. From what you write, it depends on hw and I can't do anything in the loader code to modify it. Correct?


  2. Hi, here is an update on this project. I was finally able to solve my issues described in the first post. It was not a matter of changing the screen initialization. Instead, I commented out a part of the code initializing sound, and suddenly it started working flawlessly.

    Now I have another issue: when I run my multicart in mame, when I start a game, then press F3 to reset, I get back to the menu. On a real CV, pressing the reset button restarts the currently selected game, not the menu. Does anybody have an idea of how I might get the CV to behave like mame? The code launching the game from the menu is as follows:

    ; loader.s
    
    .module game_loader_exec
    
    .globl _game_loader_exec
    ; void game_loader_exec( ushort bank_addr );
    
    .area _CODE
    
    _game_loader_exec:
    
    ; GOAL :
    ; read bank_addr (0xffe0 to 0xfffe to change the bank)
    ; jump to 0x0000 (reboot)
    
    ; get the bank_addr on the stack
            ld      ix, #0
            add     ix, sp
            ld      c,2 (ix)
            ld      b,3 (ix)
    
    ;  ld a,(bc)
    ; bc contient la bank_addr
    
    ; code a executer maintenant sur la pile
    ;
    ; 0x0a            - ld a,(bc)
    ; 0xc3 0x00 0x00  - jp 0x0000
    
    ; on met le code a executer sur la pile
    
      ld de, #0x0000
      push de
      ld de, #0xc30a
      push de
    
    ; execute le code sur la pile
      ld hl,#0x0000
      add hl,sp
      jp (hl)
    
    

    bank_addr is set in the C part of the code as:

    bank_addr =  0xffc0 + game_sel;
    

    where game_sel is an integer between 0 and 62; the menu itself is at 63.

     

    Thanks for any help

    Christian


  3. Thanks for the pointers. I wrote the roms to OTPs, so I cannot do a second run for now. I am now waiting for some EPROMS and an UV eraser to arrive from China ;)

     

    The source code I used (with some changes) is available here:

    http://zx81.zx81.free.fr/serendipity/index.php?/archives/522-ColecoVision-63-in-1-Flash-Cartridge.html

     

    The Kit I am using has the following in the README:

    ColecoVision Startkit (for SDCC)
    Made by Daniel Bienvenu, 2009-2010.
    
    
    DATE : 26-AUGUST-2011

    Is this the most appropriate to use? What is the best source describing all the APIs and usage? I must be quite frank, I just took the original source and the dev kit, built the libs, had to hack around a bit to get the loader compiling, and then I mostly focused on changing what is printed on the screen. I have no idea about NMIs, screen modes etc.

     


  4. Not sure how to read such a sym file. Here is the one for my main.c

    ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 1.
    Hexadecimal [16-Bits]
    
    Symbol Table
    
        .__.$$$.                                                    =  2710 L
        .__.ABS.                                                    =  0000 G
        .__.CPU.                                                    =  0000 L
        .__.H$L.                                                    =  0000 L
      0 ___str_0                                                       0126 R
      0 ___str_1                                                       0143 R
      0 ___str_2                                                       0149 R
      0 ___str_3                                                       01B2 R
      0 ___str_4                                                       01D3 R
      0 ___str_5                                                       02E1 R
      0 ___str_6                                                       02EB R
        __modsint                                                      **** GX
        __moduchar                                                     **** GX
        _center_string                                                 **** GX
        _cls                                                           **** GX
        _delay                                                         **** GX
        _disable_nmi                                                   **** GX
      0 _display_banner                                                0198 GR
      0 _display_banner_dx                                             003E GR
      0 _display_game_list                                             01F4 GR
        _enable_nmi                                                    **** GX
        _fill_vram0                                                    **** GX
        _game_loader_exec                                              **** GX
        _get_game_name                                                 **** GX
      0 _get_game_select                                               02F7 GR
      0 _init_screen                                                   0001 GR
      0 _init_sound                                                    002D GR
        _joypad_1                                                      **** GX
      0 _load_game                                                     0276 GR
      0 _main                                                          03E8 GR
      0 _nmi                                                           0000 GR
        _paper                                                         **** GX
        _play_sound                                                    **** GX
        _print_at                                                      **** GX
        _screen_mode_1_text                                            **** GX
        _screen_on                                                     **** GX
        _strcpy                                                        **** GX
        _strlen                                                        **** GX
        _upload_default_ascii                                          **** GX
    
    ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 2.
    Hexadecimal [16-Bits]
    
    Area Table
    
       0 _CODE                                      size  468   flags    0
       1 _DATA                                      size    0   flags    0
       2 _INITIALIZED                               size    0   flags    0
       3 _DABS                                      size    0   flags    8
       4 _HOME                                      size    0   flags    0
       5 _GSINIT                                    size    0   flags    0
       6 _GSFINAL                                   size    0   flags    0
       7 _INITIALIZER                               size    0   flags    0
       8 _CABS                                      size    0   flags    8
    
    

    Also, which .sym files should I consider? Must those for the .lib files be included as well?

     

    Thanks


  5. Are you sure about your burning process ?

    I have also a burnt rom on a cv cart from zx81 (31in1, not 63) and it works fine on a real CV.

     

    I believe the burning process is ok, since everything works except the loader which has corrupt text. I mentioned it above, but the important thing is that I modified the original loader quite a bit. The issue is that the modified loader works perfectly in an emulator, but not on a real CV...


  6. Hi, I just finished building myself a multicart, following the very cool project by these French guys:

     

    http://zx81.zx81.free.fr/serendipity/index.php?/archives/522-ColecoVision-63-in-1-Flash-Cartridge.html

     

    I was able to successfully build the loader (after modifying some bits), assembled with all the roms and burned to PROMs.

     

    Now, if I run the multirom image in mame, everything works perfectly. This is a screenshot of the loader:

    post-42028-0-61736900-1541073068_thumb.png

    I can browse the games, and upon firing, the correct ROM is started.

     

    But if I place the cart into my real Coleco (a French model), I get the following:

    post-42028-0-24370500-1541073079_thumb.jpg

    The loader does actually work. I can scroll up and down (the left-most character moves accordingly), and upon firing the correct rom is started. But instead of a readable game list I just get mostly gibberish.

     

    The loader initialized the screen like this:

      disable_nmi();
      screen_mode_1_text();
      fill_vram0(0x2000,0x1800,0xf0);
      upload_default_ascii(NORMAL);
      paper(COLOR);
      enable_nmi();
      cls();
      screen_on();

    While text is printed to screen with print_at() and center_string() calls.

     

    Am I missing something?

     

    Also, in the emu, upon resetting I get back to the loader, while on the actual CV, reset restarts the currently selected game, and I need to actually turn off and on again the CV to get back to the loader.

     

    Thanks for any suggestions!

    • Like 1

  7. Please notice that the voltage indicators are inverted, where it says +12V it should be +5V and viceversa. Also, the "optional" video output connector labels are incorrect.

     

    Anyway, I was finally able to solve the issues with this unit and now I have a perfectly working CV with brand new AC adapter (which I installed inside the CV) and crystal clear RGB output :-D

    • Like 1

  8. the components with question marks are indeed those where I could not read the actual name, mostly because it is written exactly below the component ;)

     

    I have to admit, I drew up this whole stuff, but I have no idea what it all does. The reason I did it was to find appropriate points to probe and find out where a signal gets "strange", thus giving me some indication on which component to replace.

     

    What I did leave out is all the circuitry that processes the signals from the expansion port... adding that would not be a big problem, but my eyesight is a bit taxed for now.

     

    I have (in the past) socketed and replaced every single IC on this CV board, with the exception of the two 4066s. But now I have the feeling that they could be a significant source of trouble...


  9. I believe that the french board takes the R-Y, Y and B-Y signal from TMS9929, it does not convert a composite signal, and the output is generally very nice.

    Anyway, I do now want to replicate it. I just want to understand how it works in order to be able to repair it when/if necessary. Obviously, if I am unable to service the existing circuitry, which I hope will amount to replacing a few transistors, then I will have to hook up a new RGB conversion board.


  10. I am also experiencing ghosting, and a problem with ground (see my videos on another thread a few days back).

     

    I am now in the process of learning to use EasyEDA, and then will try to create a schematic of the circuitry which goes from the B-Y, Y and R-Y output pins on the VDP to the DB15 video out connector. This should work fine as apparently there is only resistors, capacitors and transistors in this circuit, although a lot of them!

     

    Do you have the french machine with separate RGB board or is it integrated in the main board?


  11. Hi,

    while reading about the VDP, there are mentions of the additional circuitry needed to get RGB video out of the TMS9928-9 chips. On the application manual there is also a sample circuit using (IIRC) LM318 chips. Now, if I look at French colecovision boards, it looks to me like the RGB conversion is done entirely with resistor, caps and transistors. Does anyone have a schematic of this circuit? Otherwise, I might try to draw one but I am not entirely confident about my electronics knowledge to be sure that I can get it right, so any suggestions to get me started would be helpful ;)

     

    Thanks


  12. Looking at the VDP datasheet, the difference between 9928A and 9929A is that the former has a 525 line format, and the latter 625. Other than that, they should both be perfectly software compatible and pin identical, and both have removed the NTSC output feature replacing it with chroma/luma signals.

    The original VDP in the secam console has a heatsink attached and I have found no way to remove it without damaging the chip, so I have no way to be sure what the exact model is, and there are also no schematics for the secam (or PAL for that matter) model around.

    What I can say is that I took the secam VDP chip, dropped it into a working pal cv, and it worked perfectly fine. Also, if I take the 9928A chip and place it inside the secam cv, I get the same "artifacts" that I have with the original chip. So I believe that they are for our purposes equivalent.


  13. I have socketed the whole board and replaced *all* ICs (bios chip coming from a working CV). The CV still will not work. Can anyone please give some suggestion on what I might try next? I do not have an oscilloscope but I do have a logic analyzer. Can I use that to check if signals are good, as stated in the tech manual? What should I look for exactly?

     

    Many thanks for any help!!!

     

    PS: the power supply is fine and works with a different unit. the switch is fine as well.


  14. Hi sorry if this answer may be a bit late. I am in a similar position as you. I have a french CV which barely works. I have replaced all chips except the two 4066s, the Z80 and the bios chip. But none of this would fix anything.

    BTW I confirm that the trace you mention in your last post is correct. This also results from schematics (the Dan Boris' ones, which are for NTSC CV, but the part around vram should be the same).

     

    In the next few days I will try to replace the bios and CPU with ones from a working CV, see if that resurrects it. If that does not work then I am at a loss.


  15. Hi All,

    so I got hold of a French CV (board model 91209 rev B), thinking that given its built-in RGB support it would be a good replacement for my current av-modded PAL model.

     

    Upon receiving it I turned it on, and despite being in bad shape (extremely dirty) it started correctly, and I immediately saw a sign of bad vram chips (there was character corruption exactly like described in the technical manual). Apart from this the unit looked fine. So I took it upon myself to install replacement vrams (I bought a bunch of MB8118-10 chips) doing the 5V mod at the same time. I removed coils L2 and L3, and the left pin of L3 to a 5V source nearby.

     

    Then I turned on the CV (without cart) and got a black screen. I turned it off again, inserted the Q*Bert cart, and back on. Now instead of a black screen I get a blue screen, no chars or anything else, just blue. I can hear the initial jingle and if I press 1 on the controller the game appears to start, but hangs shortly after. the screen is now black again and in the middle of the screen there is a single yellow artifact. For all that I know it might be a sprite. But at the point the CV is frozen, no sound, and no way to do anything else save resetting and going back to the blue screen.

    At this point I also socketed the VDP and two ram chips, and tried installing replacements that I have sitting around, but to no avail.

     

    I checked and rechecked all the solderings, and did continuity tests between all vram chips and the vdp, and everythin appears in order. Successively I also decided to deep-clean the board by washing it in a dishwasher and drying it in the oven at 65C. But nothing changed, still same blue screen plus freeze.

     

    The next step I would try is to reflow the whole board by placing it into an oven at 250-300C, that might maybe fix any soldering issues.

     

    Does anyone have any other suggestion on what is going on and what I might try before throwing the board into the oven? I have also ordered 2 replacement Z80A and will try to install that and see if it makes a difference. At this point almost the whole board is socketed save the bios, the sound chip and the various 74LS... chips. I do not have an eeprom programmer so I have no way of replacing the bios chip.

     

    Side question: on the board there is a trimpot. I have not seen any of these on ntsc or pal boards. Any ideas what it is for?

     

    Thanks

    Chris


  16. I have noticed that the flir App has misaligned the infrared image with the optical one, in fact the "hot spots" correspond to the chips, not to the caps on their right. Regarding the temperature range, the dark areas are in the 29-30°C range, while the brighter ones are in the 40s with some getting as high as 45. The RF out chip (which should not be used since the console is AV modded ;) is one of the hottest getting to 45.

     

    But sadly, as I mentioned above, after tampering with the VDP I get the garbled screen right away when I turn on the console, even after it was off for a long time, so not sure it is an overheating issue.

     

    I guess while desoldering I fried some other component or broke some trace, but I could find no evidence of either. Does anyone have other suggestions for further diagnose?

     

    Thanks


  17. Never mind my last post, I read in other posts that -5v is not relevant here.

     

    So I went ahead and desoldered the VDP. I carefully removed the old chip, installed a socket, then tried the old chip and two spare chips. Unfortunately, the situation only got worse, in that previously the console would work for a few seconds, while now I get the gibberish right away.

    Underneath I can hear music and reaction to joypad inputs, so I would say that CPU, ram, audio and inputs work correctly, only the video portion is not working.

     

    I have no spare vram chips to test, but I will look for some online. What else can I try at this point? The console has socketed vram and vdp. I doubled check all pins for continuity and found no lifted traces. Please help! ;)

×
×
  • Create New...