Shop OBEX P1 Docs P2 Docs Learn Events
Colour Genie EACA EG2000 emulation - Page 2 — Parallax Forums

Colour Genie EACA EG2000 emulation

2

Comments

  • pullmollpullmoll Posts: 817
    edited 2010-05-24 11:12
    Dr_Acula said...
    There is one NOP wait state for a read or write.

    Did you ever try if a 74F138 works at 3.3V? The F type has a propagation delay of ~5-6ns and could be fast enough to save the NOP. Of course I don't know where in the 4 clocks per instruction the output is actually activated, and where the actual read takes place in the next instruction.
    On burst reads you can put the address increment instead of the NOP. I did this in the spi_warp.spin recently and it works fine.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • pullmollpullmoll Posts: 817
    edited 2010-05-24 11:24
    Dr_Acula said...
    Yes, send me a PM regarding the boards. Of course, you need the parts as well and it depends a bit on where you are as to which suppliers are best.

    @pullmoll, I haven't quite got this working, but I think there are issues with it conflicting with other versions like CP/M, old bits of code etc, so I might start with a clean install on a new sd card. Having sound really does create a complete retro computer. I am very impressed!

    You should really go with my split lib directory and projects directories instead of copying things into one dir. You can use your standard BST setup and just add the lib directory to its search paths, then you will always have the latest objects for all projects.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-24 13:47
    Ah, now we are having fun! I knew there was a good reason to go to the bookstore and buy those books "teach yourself German". Most of this actually makes sense. Now, can I play these games...

    addit: re 74F138 - http://www.futurlec.com/74F/74F138.shtml Intriguing. Very fast and low is 0.8V and high is 2V with a 5V supply. Yes, maybe it can. Cluso might be able to answer this - was there a NOP on the Triblade ram access?

    addit addit - a few games have some colour issues and slight screen position problems. Can you take a look at Invasion?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 5/24/2010 2:05:42 PM GMT
    592 x 468 - 88K
    518 x 444 - 74K
  • pullmollpullmoll Posts: 817
    edited 2010-05-24 15:05
    Dr_Acula said...
    addit addit - a few games have some colour issues and slight screen position problems. Can you take a look at Invasion?

    Yes, there is a nop between writing the address and reading the input data for the TriBlade.

    Invasion is very broken, because it does weird things with the CRT controller. The 6845 is only partly emulated and some things don't work at all. I tried e.g. to allow variable width by adjusting the front and back porch values.. that doesn't work yet. Games that change the default CRTC settings are unlikely to work.

    Edit: If my calculations are right, a cycle takes 12.5ns, so with some luck there could be 3 * 12.5 = 37.5ns or even 4 * 12.5 = 50ns between address output and reading the input. The RAM itself was 25ns access time? Then a propagation delay of ~12ns, like the 74HCT138 could make the additional NOP necessary and with just ~5ns of the F type it might work without.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 5/24/2010 6:54:01 PM GMT
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-24 23:05
    The ram chip is 55ns so I suspect it is most of the delay. Cluso has one NOP in the write code for the triblade (all ram lines directly driven by the propeller).

    That is a pity Invasion is broken. I was looking forward to playing space invaders!

    Also, I know I have asked this already, but which pin is the audio output?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 5/25/2010 12:35:56 AM GMT
    569 x 456 - 60K
    490 x 454 - 50K
  • pullmollpullmoll Posts: 817
    edited 2010-05-25 03:38
    Dr_Acula said...
    Also, I know I have asked this already, but which pin is the audio output?

    I used the SIO2 tx pin #24. You can set the value in the #ifdef DracBladeProp section of cgenie.spin.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-25 05:03
    Ok, I'll make it pin 24.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-28 14:16
    My wife has just had a lot of fun playing Mampf Man II. Got within one red dot of clearing the first level. Feedback from a non biased reviewer is that it is "very fast".

    From a programmers point of view, I *think* that might be a very nice compliment!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • pullmollpullmoll Posts: 817
    edited 2010-05-29 13:31
    Dr_Acula said...
    My wife has just had a lot of fun playing Mampf Man II. Got within one red dot of clearing the first level. Feedback from a non biased reviewer is that it is "very fast".

    From a programmers point of view, I *think* that might be a very nice compliment!

    The Z80 is a little too fast for the Colour Genie, yes. The original ran at ~2.2MHz (I think it was 14318318/6 actually) but the video hardware generated one wait state every 4 or so cycles. Some games run faster than they should, some others seem okay. I guess it depends on the type of instructions they run, because I have no cycle time adjustment in qz80. That would be difficult to fit.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • pullmollpullmoll Posts: 817
    edited 2010-05-29 15:11
    Here's a video of the emulator running on a DracBlade and with Ahle2's latest AY3-8910 emulation.
    http://www.youtube.com/watch?v=L8QacbW_1K4

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-30 08:32
    My 12 year old just got 6,580 on Pacman. He got to Level 5. He says it is "easy" and it is "slow".

    I can't even clear level 1. He says he has been practicing on the Google pacman.

    Now the kids want all the other games working!

    Addit: Now he has a score of 8590.

    I like the video. The lovely retro square wave sound makes all the difference to the games. I'm working on a redesign of the board with an audio amp and a few other goodies.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 5/30/2010 8:52:45 AM GMT
  • BaggersBaggers Posts: 3,019
    edited 2010-05-30 09:11
    Dr_Acula said...
    I'm working on a redesign of the board with an audio amp and a few other goodies.

    Is it going to have TV / VGA switchable? and Audio jack out?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-30 09:58
    Hi Baggers,

    Yes this probably should be on the dracblade thread but I keep replying to my own thread which isn't kosher.

    Ok first thing is that I've ordered another 40 boards exactly the same as version 5. Those boards fit in a standard envelope so are cheaper to post.

    This new design is an attempt to link into the N8VEM group, so it adds the ECB bus which is a German design, and, according to the N8VEM group, has some distinct advantages over the S100 bus or the STD bus or other bus designs.

    It is not a perfect implementation, and the /RD and /WR lines for instance are "fake" in that they are software driven. Interrupts are not enabled and timing is not like a Z80 chip. But what it does do is bring out 16 address lines, 8 data lines, and the ability to read and write bytes to ports 0 to 255 on real physical boards within the N8VEM project. So you could add some more serial ports with a uart chip for instance.

    And of course, you can leave out the HCT245 chips and the ECB plug.

    Next is that this is a Eurocard sized board which is 100 x 160mm. There are advantages to making the board bigger so it fits in slots for the N8VEM group.

    Where this leads is more spare space on the board. So I had a think about what would be useful.

    First is TV vs VGA. I've thought about this a lot, and my interpretation is that the propeller outputs are low impedence, capable of sourcing or sinking at least 20mA, and the resistors they are driving result in currents a lot lower than this. So - I think if a pin drives both VGA and TV resistors the signal should stay the same - even if both sets of resistors are installed. So I don't think you need jumpers. Just a standard VGA and RCA socket. Software chooses which one you drive.

    Next thing = the LM386 audio amp. Output goes to a standard 8 ohm speaker. I used a 2 pin jumper/header. Maybe screw terminals would be better? There is no 'standard' as such for speakers. And the two pin header is the smallest. I really need those cheesy 80s sounds

    I pulled the ram chip a little closer to the propeller. Can't hurt to make the signal paths a little shorter.

    And then I've been thinking about networking.

    RS485 has the advantage that you can daisy chain modules, and there are circuits out there that use the spare 4 wires in a cat5 patch cable. So I thought I would use that. There is also a way of using 'power over ethernet' that these people use www.hw-group.com/download/HWg_Poseion_RS-485_wiring_schemes.pdf scroll down near the bottom for the connections to the brown and blue wires. The second thing is the complexity of RS485 using the RTS line to set the direction. This is a total pest and it tends to be glossed over a bit in descriptions of the protocol. Ideally what is needed is a 'RS232 to RS485' converter that can handle the 3 wire implementation of RS232. No handshaking lines. I found this nifty circuit www.lvr.com/rs-485_circuits.htm and it makes a lot of sense.

    So this RS485 solution solves several problems. It gives you the option of RS232 or RS485 on the board with a single jumper and no need to use another propeller pin or add more code. And it also enables boards to be daisy chained with standard cat5 patch cables, and also for boards to all be powered off one wall-wart.

    I'm thinking this ought to enable the wireless networking to work with a wired solution as well, which would be cheaper and more convenient for short runs. It means you don't need a RS232 hub, and because radio forces you to solve the data clash problem, the problem is already solved for a common wired solution as well.

    Ok, that is the technical stuff. I now have a much more urgent issue. My children want to play more Color Genie games.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 5/30/2010 10:10:13 AM GMT
  • BaggersBaggers Posts: 3,019
    edited 2010-05-30 12:13
    cool [noparse]:)[/noparse] thanks for the info!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • pullmollpullmoll Posts: 817
    edited 2010-05-30 14:48
    @Dr_A: Is there a reason why you don't connect all the data bus lines to all the 74HC374s? Load on the Propeller? Routing of the PCB?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-30 23:32
    Yes it was to help the autorouter find a solution. It couldn't complete the layout, but I changed some settings for eagle and now it finds a solution in about 4 minutes, so maybe I could put those data lines back? Then it might make it easier for hacks to the board later on?

    And maybe I might add some more lines to the ECB bus - even if they are never used, maybe someone might want them. 4 spare on that latch doing the external /rd and /wr lines.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2010-05-31 07:19
    Dr_A

    When you say " 4 spare on that latch doing the external /rd and /wr lines." do you refer to the unused bunch of 4 lines that are on the Addr_High latch? I ask as thes are WR only but you seem to say RD/WR.

    I am intending to·use the LCD latch to 8 bits output and have a matching 8 bits input, enabled by the next available 74HC138 output (Y6 pin9), to a 74HC541. I would like to try and keep it as compatable as possible.

    Alan

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Why did I think a new, more challenging, job was a good idea ??
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-31 08:09
    Hi Toby, I'm getting a vibe from the N8VEM group that half an ECB bus is not good enough. If it isn't Z80 signals going up at down at 4Mhz including M1 and HALT and proper interrupts then it doesn't count.

    So I might put in some more input and output lines instead of the ECB bus.

    Whatever happens, it is extra chips and all the existing ones won't change. So everything will be backwards compatible.

    In fact, I might do just what you suggest!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 5/31/2010 8:36:50 AM GMT
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2010-05-31 09:03
    ·@Dr_A

    Thanks I will continue to see if my puny attemps are successful.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Why did I think a new, more challenging, job was a good idea ??
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-31 09:31
    Brainstorming here - a 541 for input, another latch for output, add all the data lines back to existing latches, maybe bring out those spare pins to headers, maybe have a 20 way header with 8 inputs and 8 outputs? There might still be some room left over. What else - a real time clock? I2C A to D and/or D to A converters?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-06-01 03:55
    @Toby, see attached for the latest version. I've added an input 541 like you suggested. That gave me enough pins to read things on the ECB bus. And there are outputs as well.

    So for the N8VEM this gives you a parallel bus, and a way of talking to other peripherals.
    For someone who is not interested in the N8VEM, just see this as adding 8 more digital outputs and 8 digital inputs.
    And for someone who will not use either, just leave these components out.

    I've done the layout so audio, RS485 and ECB are all grouped together. So it is easy to only build the components that are needed. Everythign on this board is backwards compatible with the existing boards.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2010-06-03 23:48
    @pullmoll, Dr_A:

    This is a little "nit picky", but in watching the video demos of the Color Genie emulation, I noticed that the VGA
    monitor kept switching to "NO SIGNAL" when the Propeller reset. Couldn't this be solved by simply putting
    +5v on pin 9 of the VGA connection? Again, nit picky, but would make the Propeller a little more "friendly"
    when switch from VGA code to VGA code.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Feature Projects: PropellerPowered.com
    Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-06-03 23:54
    That would not solve it.

    There IS no signal when the prop is reset - no HSYNC, no VSYNC, so the monitor correctly states "No Signal".
    Oldbitcollector said...
    @pullmoll, Dr_A:

    This is a little "nit picky", but in watching the video demos of the Color Genie emulation, I noticed that the VGA
    monitor kept switching to "NO SIGNAL" when the Propeller reset. Couldn't this be solved by simply putting
    +5v on pin 9 of the VGA connection? Again, nit picky, but would make the Propeller a little more "friendly"
    when switch from VGA code to VGA code.

    OBC
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-06-04 00:10
    Bill is right. And there already is 5V on pin 9. I'm not sure of an answer to this, but I haven't really found it to be a problem. My PC also gives a "no signal" when I reset it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2010-06-04 00:13
    Ah... looked up the spec again...


    set straight.. [noparse]:)[/noparse]

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Feature Projects: PropellerPowered.com
    Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
  • pullmollpullmoll Posts: 817
    edited 2010-06-05 05:53
    Back on topic: The new release v0.1.7 fixes the CRTC vertical displayed issues. Now ELIMIN.CMD displays all required scanlines (108?) and KONG32.CMD no longer displays garbage at the bottom (less than 100 scanlines). Some games that change the horizontal displayed still don't work. Display of Invasion is still very broken.
    The keyboard driver detects Ctrl+Alt+Delete pressed and then resets the Propeller. I'll add this to the other emulations as well, so you don't need a reset button on your PCB.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 6/5/2010 5:58:39 AM GMT
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-06-05 07:13
    All great additions, thanks pullmoll.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2010-06-05 07:37
    Dr_A

    I will have a look at your '541 thoughts this weekend.

    I have just done a 90 hour week (and I'm not a Doctor) so a befuddled brain, more than usual, will not be a help. smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Why did I think a new, more challenging, job was a good idea ??
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-06-29 06:42
    See attached - just soldered up a new board - Eurocard size 160x100mm. Still testing things out - I've got TV to test and RS485 and the ECB bus for the N8VEM, but this afternoon's little job has been to get sound working.

    No problems with TV and VGA interfering with both sets of resistors installed.

    I have some lovely retro sounds coming from Pacman. Especially when he gets eaten!

    My version of Crazy Draw seems corrupted (lots of reboots on the sd card) - I'll download it again. But it did give one beep at the beginning.

    Still looking for other programs that have sound - has sound been added to many?


    Just a quick question - the volume is fairly quiet. Well, quiet compared with a file transfer on serial port 2 in MP/M (sharing the same propeller pin). Did I see a comment earlier about turning the volume down?

    Addit: I tried fixing that with the latest download, but now I have a new problem - the keyboard is not working. It boots up to "Colour Genie EG2000 emulator" with the menu but the arrow keys don't work. pullmoll, would you mind just checking to see if that is a problem on the v 0.1.8 (it worked ok on v 0.1.6)

    Many thanks

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 6/29/2010 2:08:51 PM GMT
    1280 x 960 - 372K
  • Jean-MarieJean-Marie Posts: 128
    edited 2010-11-27 05:23
    Guten Tag Pullmoll,

    A few days ago, I finished my homemade DracBlade (see this link : http://forums.parallax.com/showthread.php?t=124165 )

    I think you contributed quite a lot with your qz80 soft. Many thanks for all that work !
    I can run KyeDos, CP/M, Wordstar, Xmdem, etc… without problem. I wanted to try some old game (to impress my wife and make her understand why I am stuck to this little board all the day long) and Dr_Acula sent me to this thread.

    I downloaded your zip files for the Colour Genie and followed your instructions:
    pullmoll wrote:
    You can put the binary on an SD card (either FAT16 or FAT32, depending on loader) and use one of the loader programs (Catalyst, Sphinx etc.) or you load it directly to RAM or EEPROM using BST. On the SD card you need to put the CGENIE.ROM file from the ROM subdirectory and the PAINT.CMD file from the CMD subdirectory. The latter can also be put into a subdirectory on the SD.
    As I know nothing about Catalyst, I chose to compile cgenie.spin with BST (and YOUR library) and downloaded it into EEPROM. I then copied all the .CMD files on the SD Card in a directory called COLGENIE.

    At RESET, everything seems normal: see picture 1.

    Then I enter the COLGENIE Directory and choose PAINT1.CMD.

    According to your video (Youtube) the screen should look like picture 2.

    In fact, I get picture 3

    The name of the file is missing (compared to your screen).

    Also, after having written "Entry Point 9000", the program seems to hang and doesn't respond to any key ==> I have to reset the Prop.

    I also tried PAINT2.CMD and MAMPF2.CMD. The numbers (sector, size, etc…) are different but the program always stops at the same place.

    Would you have any idea about what is wrong ?
    639 x 279 - 62K
    639 x 301 - 21K
    639 x 299 - 65K
Sign In or Register to comment.