Jump to content

zCRP

Members
  • Posts

    42
  • Joined

  • Last visited

Recent Profile Visitors

2,947 profile views

zCRP's Achievements

Space Invader

Space Invader (2/9)

3

Reputation

  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. Hi, I am making a few eprom based coleco carts, but lack empty shells. Any idea if somebody is selling them? I could buy old carts and throw away the pcb, but nowadays on ebay even the most common games are somewhat expensive for this purpose. thanks
  4. If it boots a game instead of menu maybe you have inverted the roms? just try to swap them around...
  5. Here is the modified main.c file, as well as the only map file in the project (I added txt extension to allow attachment upload). Original and rest of package is available at the link I posted above. Thanks main.c.txt crtcv.map.txt
  6. 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.
  7. 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
  8. 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...
  9. 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: 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: 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!
  10. 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
  11. Update: the remaining video issues were due to the fact that the "official" scart cable supplied with the French CV has only one ground connection on the shield. Apparently my monitor needs the other ground connections as well, so I soldered a few bridges inside the connector joining shield with various ground pins and now everything works perfectly
  12. 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...
  13. Here is a first draft of the schematic for the RGB circuitry. It is messy, and I had no idea what I am doing, but hopefully it can be useful. Any comments are appreciated. Schematic_CV-RGB-circuit_Sheet-1_20180802223713.pdf
  14. 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.
  15. 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?
×
×
  • Create New...