This thing is what's called an In-Circuit Emulator. They used to be really popular for software development in general (if you could afford the high prices they had back in the day). They fell out of favor in systems that got faster because the old way of doing it, with less individually capable chips, usually required a ribbon cable to connect the CPU socket to an external box of electronics into which the CPU would be plugged. As clock speeds got faster, this started having problems with latency, timing, and signal integrity and fell out of use for things like PCs, but are still very useful for embedded systems (which are generally running at much slower clock speeds because they don't need or benefit from using a blazing fast 64-bit CPU over using an 8-bit CPU running at a couple of MHz). With virtualization on modern CPUs, you can produce a lot of the same debugging capabilities in software as ICE hardware once provided.
Your LIST at 25:01 should be showing '10 PRINT "BAD KITTY!!!"' but it's actually showing '21324'. Yet the program still runs correctly. That's a really fascinating symptom.
The BBC has the ability to page the memory between 0x8000 to 0xBFFF. Supporting up to 16 banks of 16k, Described as "Sideways ROM" though later models, such as the B+ and Master, used the address space for RAM.
Do it again! But with a Pi Zero W. Solder your own pinheader cable from the Pi. Power the Pi from inside the computer. Close up the computer. Now you have WiFi access. There should be a way to use a transistor to pull the CPU reset or power to the other state for a "soft" restart when it hangs. You could also try a transistor to toggle the CLK on/off for the CPU. Stop the clock, load new RAM data, start the clock. Maybe prevent the hang in the first place? This is all speculative. You have the hardware.
You can't stop the clock on a 6502. The datasheet shows that the minimum clock cycle time is 40uS (25kHz). Anything less than that and the CPU will not work properly.
I have one of the beta test units of the romulator and used it to work on early Atari arcade games.. It was great for trouble shooting . (Night Driver and Football) It currently lives in my Pet 2001-8. Bitfixer also makes a nice sd card drive emulator that also supports wifi loading from a webserver.
What a genuinely fantastic device and tool. At a great price too - I absolutely must get one of these assuming there hasn't already been a run on them. Apart from all the excellent features Adrian has demonstrated with this being a fully programable device there are so, so, many other potential applications. I hope the designer sells a great many of these; both as a reward for his hard work and generosity and for a community to develop around it.
Please demo this on other 6502 machines in your collection...! It's awesome for the VIC already, but I'd love to see what it's like on the Apple ][, for example...
That's so clever. Kind of ironic how you working on old tech inspires great new ideas. Well done to the creator and thanks for the explanation Adrian. 👍
wow, a really great product it seems!. I just wanted to say thank you for going to all that effort to expand on what can be done with it etc. I really appreciate your effort. Cheers! 👍
Agreed. The possibilities, using this brilliant device, are just about limitless. Anyone that still plays around with the 6502 processor hardware could really push their project to the limits with one of these units. This device reminds me of way back in a previous life I had. I used to employ "In Circuit Debuggers" ICP/ISP dongles, for programming/reprogramming Altera and Xilinx FPGA configurations, for modifying the mapping of first generation Color LCD panels for the private aircraft industry. Really cool to see this in action today. Took me back 25 years... just like that! Thanks a lot for the great video Adrian. I really enjoy geeking out vicariously, through your awesome UA-cam channel. Fred
My God Father was the hardware engineer behind the C64, "Freeze Machine". This awesome device is the modern equivalent of how the Freeze Machine worked. I remember him remarking, "I couldn't believe no one had thought of it before!" The royalties earned him the deposit on his first house.
Adrian, I see this as a nice way of modding the 1541's as well. have multiple versions of the 1541 ROM's and JiffyDOS in it as well as the memory map so you could give the 1541's extra RAM for running stuff on the drive and custom backup utilities.
Genius idea! I'm constantly flabbergasted at the uses people are coming up with for the Pi! That Amiga HDMI hack was awesome of course, but the potential of this implementation for changing your Commodores ... well the sky's the limit! Complete custom Rom, Different language to basic! C64 Forth :D I hope there comes a solution to help with the VIC Screen Memory DMA though. Thanks for another great video! Very inspiring!
I knew FPGA’s were flexible but this is a whole other level. No need for custom silicon or burning ROM’s. just feed the FPGA the right instructions and it does all that for you. This is the kind of thing that to this day is a programmers dream. Real time debugging on real world hardware. Being able to halt, resume, and step through as you please. Modern hardware is really bringing out the best of the 8 bit era
That is truly impressive!!! Tempted to get this for my 2nd Vic-20, just because... If I do, might look at replacing the dip switches with a header so I can bring the switches outside the case for easier access... Also, 9 dislikes? Probably Z80 fans.... ;-)
I read about a ZX Spectrum developer back in the day used a TRS-80 III or IV with special custom hardware to dump the contents down to the ZX and do all the development on the TRS-80 a great way to speed up development and similar to the capabilities this Romulator provides today with the RPi. I ordered one so thank you for pointing them out!
Oh this is a nifty device for sure. I could see this device being used in not just the VIC-20, but the 1541 drives to give them more RAM as well for backup programs for larger buffers. It would be nifty if there was a Motorola 6809E version of this. For things like the Vetrix or Color Computer systems.
Nice video Adrian! Considering VIC-20, next step could be to have a VIC chip emulator on raspberry pi to use it as video and audio pass through, according to SPI bandwidth.
To me, what's so exciting about this product is its the first time I have seen bare metal and a Raspberry PI working in concert to produce a result. It's great to see us moving beyond emulation and just makes the original hardware that much more viable.
The DIP socket isn't to protect the pins during shipping. You have to leave it on as otherwise the long pins on the Romulator damage the DIP socket on the motherboard.
This might be insanely useful for game development. With the RPi sitting between a workstation and a real target system, it could be used to push a build to real hardware. No disks, SD cards, or special cartridges required. Just map it to wherever it's supposed to load into RAM from disk, and maybe hack an interrupt or KERNAL vector to auto-run. A spare I/O pin on the Rpi could also be rigged to the cartridge port to do a soft reset, side-stepping any CPU freeze problems.
Couple decades back I made a project called the EPROM emulator. This device had SRAM and logic to load the contents by copying binary file to LPT1 port with a computer having a parallel port and a compiler for the target. That thing was so nice when coding and testing code. Mostly used it with Intel MCS-51 family MCUs, but it is universally usable with any system with similar memory. This thing looks like a modern replacement of what that Elektor magazine design was.
I am actually amazed how many great open source projects are out there for the Commodore-Amiga series computers. I wish it were like that for the Sinclair. There are amazing designs for it too, almost in the same amount, but unfortunately 95% of them are commercial and a tad expensive compared to Commodore projects.
Yep, this is a modern implementation of a classical debugging tool called an In-Circuit Emulator. They fell out of use due to signal problems on PCs as they got faster, but embedded systems, with their usually slower and simpler CPUs still have them as a major tool.
Really good I remember building something similar in college in the 80's and just one memory chip cost as much as that board and mine had 4 chips on two Euro cards100mm x 160mm. I worked on my old vic20 as at home had a C128 at home. This brings memories back as still have it but never used since leaving college probably easier to buy this product instead of getting my old one working again as wire wrapped and probably some of the wires damaged.
I've just come here from the future... and, yes, indeed... it is very cool and very exciting! ;) In the olden days, we used a lot of CP/M machines and they would load their basic from disc to RAM.... so the game of altering error messages and basic prompts is well known to me. We would spend ages trying to work out obscene versions of error messages that had the same number of characters as the "clean" originals.
That's a very interesting device! I put it on my to do list. But I do have one complaint. When you started reading the letter I was hoping you would read using Casey Kasem's voice, "and here's a letter dated from 1973..." 😂
I can see this being a basis for a modern version of something like a Fluke 9010a. No need for the 9010 itself or the processor pods when you have a raspI for control. I wonder if it could be configured to test ram, roms, and the vic. Would be cool if it could be reconfigured for other processors too. Handy for arcade collectors for troubleshooting boards.
"Well hello" - Adrian, the Leslie Philips of the retro world. ;-) FWLIW: As this board is FPGA based and is already capable of 'wright-through' a small update to the code should allow for full 'save state' functionality.
Used on an Atari 8-bit, the ROMulator becomes a tool like the Pro Action Replay cartridge such as for the PlayStation and with a utility you'll have to write, can hack games.
The romulator could replace hardware no longer available or port it to different devices. From the description it should be able to provide a floppy drive with something like dolphin dos including the extra RAM. I think parallel cable sockets are still available. Or even give a SFD1001 (Commodore 1MB 4133 Blocks free floppy drive) which already has a parallel bus extra RAM and the ability to store a whole track. Probably the necessary code to read, decode and send the track could be extracted and adapted from dolphindos or one of the other conversions for the 1541.
I was actually thinking of making something similar for the C64, only a cartridge solution. Mainly for game development and testing though. The product you showed here is nice but it lacks software tools. The ability to load/save only a part of the memory would be handy, along with a monitor to break, step and change memory on the fly. Cheers,
It is open source. Do it. There is easy access to 6502 monitor tools online. Use/patch that for more features. I’d made something similar for z80 cpu with an arduino board. Not hard to do.
Wow, looks great! I usually use a bus pirate or TUMPA, with so many goofy commands to make something work. Ah, the TUMPA is the Tiao Usb Multi Protocol adapter. But even I'm looking at FPGA for the future, heck you can get them able to capture at ghz speeds! Hoping for an affordable device for snagging lcd i/o signals. So someone could make an rgb/hdmi type of thing, only for lcd screens. Like a plug & play portable screen kit.
Z80 version in development! The fpga board will be reusable from the 6502 version, so you would only need to replace the interface board which is pretty cheap.
I'm not a 6502 expert, but if you just replace RAM contents of some 8080 or Z80 machine it would crash with pretty high probability since now it has unexpected contents on the stack. So first RET will fetch some unexpected return address from stack and will jump to some unexpected place. In order for it to work smoothly you need to save/restore CPU registers contents as well (including stack pointer)
Wow. Another cool feature with the Ram Passthrough. A memory test! You could literally determine the failed BIT after a few runs just cycle what the CPU writes to ram and then read the board ram and compare to the FPGA's ram. That is cool. I'd be curious to see what you could do with that in a 1541 and the right fpga programming... IE Rasp Pi connected could auto-download any disk inserted. An auto-image maker. Or a bit level disk copy. I'm impressed!
And actually as I think about it, you could build a near infinite ram space. IE grab a chunk, 0x9000-0x9FFF, lose the first four bytes to use as banking addresses. So if you poke 0000, the chip switches in the next bank of ram. An REU of sorts. You could swap it faster than the cpu can request it. Man. That is a really cool gadget!
isn't the command "print" represented by a one or two byte token, and line numbers stored as hex but list as decimal equivalent. something like that. so when you go to the basic program space, you need to decode it like the basic rom does. oh, the plain text parts are shown verbatim.
@@fumthings I'm not sure, I'll have to do some checking. I just noticed that when Adrian typed "LIST" after reloading the RAM via the Raspberry Pi console, the program wasn't the same.
@@michaelcarey sorry, i misunderstood. i think someone else suggested corruption of the bytes, the program still worked as before but line 10 is no longer visible (i think there was a commodore trick that does this) the next line number appears as a five digit number with no command following it , then line 20 appears as normal. maybe the fpga or Rpi didnt work properly, also the power cycling of the vic20 may have left some random data. Adrian said that when you power cycle it clears the program listing, i think maybe it only erases the first few bytes so the program listing is empty but the ram may still contain random data if it is power cycled quickly. whatever the cause, i suspect if Adrian performed that step again (maybe with a proper power cycle) it would perform properly and the weirdness would disappear. As it appears he didnt notice and didnt re video this part, the little weirdness slipped through.
A great demo and explanation of a nice device. Purely for myself I've designed a 6502 circuit board and the romulator will be a useful device for finding the inevitable bugs in my layout and assembler code. I've made my board expandable so if I do design any expansions the romulator will help me debug them too. BTW thanks for all your content! I usually watch your videos while I'm cooking our evening meal, so depending on what I've chosen to cook I might watch your content in 2, 3 or even 4 episodes across as many evenings. They usually slice up quite nicely
Dear Adrian and Basement community , how are you'all . I have discovered a Quantum effect in comparing circa 1980s computer motherboards and the post 2021 era motherboards . The effect is : those old motherboards had components which are difficult to desolder but easy to resolder ( if you do not have a desolderring station , which again requires high tech vacuum pumps and specialist equipment ) . Then post 2021 we have components which are easy to desolder ( because now we have the desolderring stations ) , but which have tiny little contacts which are difficult to resolder .
Just an FYI: The 40-pin socket isn’t there as a sacrifice part to protect the machine pins; it’s there because the machine pins can damage the 40-pin socket on the board that you’re testing. The 40-pin socket has smaller flat pins that won’t stretch out the holes in the socket on the board being tested.
Hi Richard, Got a new version of the board out now which *should* support the 65C02 as well as 6502, but need to test it a bit more before making that claim fully!
I think you mean 6502C, which is the Atari XL/XE specific version of the NMOS 6502. The 65C02 is a CMOS version of the NMOS 6502 which uses less power and has a number of improvements.
this is just for microcomputers? being able to use this on an NES as a real time, real hardware debugger would be amazing for homebrew development on actual hardware instead of emulators
I don't see any reason it wouldn't work but debugging on hardware I think it would be just as possible and less invasive to make a man-in-the-middle cartridge like the game genie and id be surprised if no one had done this.
I was thinking of the same thing, shouldn't be too hard to implement an adapter board that leaves the APU and other functions intact. Super curious and tempted to find out.
@@jwrush Should be able to do it with a Pro Action Replay, but those are difficult to come across and a lot more pricey. Still something interesting to look in to either way.
While the NES does run 6502 instructions, the CPU is only based on a 6502, so it's not pin-compatible. You could modify the romulator schematic to be compatible, but you're not going to get complete functionality because the NES's CPU includes the audio processor which means a small chunk of the memory map is inaccessible outside the CPU.
@@StarkRG The NES chip uses a core whose layout was copied directly from the 6502, except with the patented BCD arithmetic section disabled, so I'd describe it as being more than "based upon" the 6502, but the key point remains that the build-in audio and DMA subsystem will complicate things.
man I love your name, "Adrian Black", sounds like a villain from resident evil: WAIT, I GOT IT!; Adrian Black; Villian for Umbrella Corp, has been building traps for Umbrella Corp to stop STARS and BSAA since the company first launched, never looked older due to being accepted by Uroboros, always happy, is disguised by his youtube channel Adrian's Digital Basement.
When I made ZX spectrum in CPLD and independant Z80 with SRAM, there was simmilar effect. The video subsystem can crash or you can reset it while program is running. And game still runs. Even I reconfigured CPLD while running without crash. The only thing was important- cmos CPU with static clock available.
Yes, this is awesome. However, as updating the "Pass-through" ram, I just think one simply write to the FPGA ram. Then have a routine running the VIC 20, read from the FPGA ram and write that out the "Pass-through" ram. But overall, the ROMulator seems to be great idea.
All so it's sort of like the cartage super snap shot. It had a 8K ram chip to copy RAM it used from the C=64 to it's RAM chip so no RAM got messed up when you pressed the button.
after 40 years we got the VIC-20 Dev Kit.
This thing is what's called an In-Circuit Emulator. They used to be really popular for software development in general (if you could afford the high prices they had back in the day). They fell out of favor in systems that got faster because the old way of doing it, with less individually capable chips, usually required a ribbon cable to connect the CPU socket to an external box of electronics into which the CPU would be plugged. As clock speeds got faster, this started having problems with latency, timing, and signal integrity and fell out of use for things like PCs, but are still very useful for embedded systems (which are generally running at much slower clock speeds because they don't need or benefit from using a blazing fast 64-bit CPU over using an 8-bit CPU running at a couple of MHz). With virtualization on modern CPUs, you can produce a lot of the same debugging capabilities in software as ICE hardware once provided.
This thing is FREAKIN' AWESOME!!!
Great technical video, as always, Adrian!!!
If only I had one of these "back in the day"!!! :)
I am enjoying wondering what is the cross-section of people who know both what DIP sockets are, and what anti-corrosion sacrificial anodes are.
*Slowly raises right hand*
@@heskrthmatt Me too!
Everyone who owns a boiler should know what a sacrificial anode is.
Yup. Live on the coast and I like computing.
*Raises hand*
If I didn't learn anything here, the tip of using a sacrificial socket for shipping, that was worth my time!
What a fantastic tool, I can already tell we will see this come out again.
good prediction, adrian just announced that he'll use it to fix up a PET 4016
@@mariusberger3297 I was literally watching the video when you made this comment! Hysterical.
Your LIST at 25:01 should be showing '10 PRINT "BAD KITTY!!!"' but it's actually showing '21324'. Yet the program still runs correctly. That's a really fascinating symptom.
Nice. Can't wait to see one of these in action on a BBC Micro at some point. Thanks for the video, Adrian.
The BBC has the ability to page the memory between 0x8000 to 0xBFFF.
Supporting up to 16 banks of 16k,
Described as "Sideways ROM" though later models, such as the B+ and Master, used the address space for RAM.
How amazing is this! Thank you Adrian for showing all the features (or at least A LOT OF THEM)!
Do it again! But with a Pi Zero W. Solder your own pinheader cable from the Pi. Power the Pi from inside the computer. Close up the computer. Now you have WiFi access. There should be a way to use a transistor to pull the CPU reset or power to the other state for a "soft" restart when it hangs. You could also try a transistor to toggle the CLK on/off for the CPU. Stop the clock, load new RAM data, start the clock. Maybe prevent the hang in the first place?
This is all speculative. You have the hardware.
Pi Pico more than enough, an it small
You can't stop the clock on a 6502. The datasheet shows that the minimum clock cycle time is 40uS (25kHz). Anything less than that and the CPU will not work properly.
I have one of the beta test units of the romulator and used it to work on early Atari arcade games.. It was great for trouble shooting . (Night Driver and Football) It currently lives in my Pet 2001-8. Bitfixer also makes a nice sd card drive emulator that also supports wifi loading from a webserver.
That's awesome -- I was simply amazed at how useful it is
What a genuinely fantastic device and tool. At a great price too - I absolutely must get one of these assuming there hasn't already been a run on them. Apart from all the excellent features Adrian has demonstrated with this being a fully programable device there are so, so, many other potential applications.
I hope the designer sells a great many of these; both as a reward for his hard work and generosity and for a community to develop around it.
I've never owned a 6502 computer and probably never will but I still find these videos intriguing.
Wow, what a project! Thanks to the author and to Adrian for spending time with it.
Please demo this on other 6502 machines in your collection...! It's awesome for the VIC already, but I'd love to see what it's like on the Apple ][, for example...
WOW, that Romulator is so cool. Really good video. Thank you
That's so clever.
Kind of ironic how you working on old tech inspires great new ideas. Well done to the creator and thanks for the explanation Adrian. 👍
Good episode, ordered one to try and rehab my Commodore LCD.
Wow!
And not cost prohibitive.
Amazing!
Take my Canadian Pesos, please!
Shipping to Canada is only $13us, so total cost for one shipped is $43us.
wow, a really great product it seems!. I just wanted to say thank you for going to all that effort to expand on what can be done with it etc. I really appreciate your effort. Cheers! 👍
That is really a nice gadget to have. Thanks for reviewing. I hope there will be 6510 version.
I'm over in the east bay. Nice to see a Bay Area shout out!
Un video stupendo,realizzato in modo esemplare,grande il VIC 20.ben fatto adrian
Excellent demonstration of a very cool tool. It would be very interesting to see how people use this in creative ways.
Agreed. The possibilities, using this brilliant device, are just about limitless. Anyone that still plays around with the 6502 processor hardware could really push their project to the limits with one of these units. This device reminds me of way back in a previous life I had. I used to employ "In Circuit Debuggers" ICP/ISP dongles, for programming/reprogramming Altera and Xilinx FPGA configurations, for modifying the mapping of first generation Color LCD panels for the private aircraft industry. Really cool to see this in action today. Took me back 25 years... just like that! Thanks a lot for the great video Adrian. I really enjoy geeking out vicariously, through your awesome UA-cam channel. Fred
My God Father was the hardware engineer behind the C64, "Freeze Machine". This awesome device is the modern equivalent of how the Freeze Machine worked. I remember him remarking, "I couldn't believe no one had thought of it before!" The royalties earned him the deposit on his first house.
Adrian,
I see this as a nice way of modding the 1541's as well.
have multiple versions of the 1541 ROM's and JiffyDOS in it as well as the memory map so you could give the 1541's extra RAM for running stuff on the drive and custom backup utilities.
Genius idea! I'm constantly flabbergasted at the uses people are coming up with for the Pi! That Amiga HDMI hack was awesome of course, but the potential of this implementation for changing your Commodores ... well the sky's the limit! Complete custom Rom, Different language to basic! C64 Forth :D
I hope there comes a solution to help with the VIC Screen Memory DMA though.
Thanks for another great video! Very inspiring!
This is absolutely awesome. Thank you for sharing this sir. So much fun watching this.
With a bit of fiddling, that'd be a great way to export BASIC programs as well
You have a great avatar.
This is awesome. By 'this' I mean the joy you get by checking this out. Never change!
I knew FPGA’s were flexible but this is a whole other level. No need for custom silicon or burning ROM’s. just feed the FPGA the right instructions and it does all that for you.
This is the kind of thing that to this day is a programmers dream. Real time debugging on real world hardware. Being able to halt, resume, and step through as you please.
Modern hardware is really bringing out the best of the 8 bit era
This is like save-states for hardware. So freaking cool for you people smart enough to use it.
Adrian, I couldn’t think of a better birthday surprise than seeing you posted a video!
That is truly impressive!!! Tempted to get this for my 2nd Vic-20, just because... If I do, might look at replacing the dip switches with a header so I can bring the switches outside the case for easier access... Also, 9 dislikes? Probably Z80 fans.... ;-)
Z80 version is under development!
@@bitfixer6502 Don't encourage them! :-)
Too Bad Jokes about dislimes can't be Made anymore due to UA-cam being pissed about the amount of dislikes on Last years rewind.
This is genius!! I love it. Great video, thanks.
I read about a ZX Spectrum developer back in the day used a TRS-80 III or IV with special custom hardware to dump the contents down to the ZX and do all the development on the TRS-80 a great way to speed up development and similar to the capabilities this Romulator provides today with the RPi. I ordered one so thank you for pointing them out!
Most devs from '85 onwards used Amstrad CPC128s for the same purpose.
This device is amazing, had my smiling all the way through. As always Adrian, thanks for sharing.
I was chuckling along with Adrian the whole time he was editing the ROM, made my day.
Neat. Can imagine this dangling from the back of my pi400. Great package. Thanks for the video as ever Adrian!
Oh this is a nifty device for sure.
I could see this device being used in not just the VIC-20, but the 1541 drives to give them more RAM as well for backup programs for larger buffers.
It would be nifty if there was a Motorola 6809E version of this. For things like the Vetrix or Color Computer systems.
Nice video Adrian! Considering VIC-20, next step could be to have a VIC chip emulator on raspberry pi to use it as video and audio pass through, according to SPI bandwidth.
To me, what's so exciting about this product is its the first time I have seen bare metal and a Raspberry PI working in concert to produce a result. It's great to see us moving beyond emulation and just makes the original hardware that much more viable.
Thanks again for showing us another bit of interesting kit, with such enthusiasm :)
Love the Tandy floppy sleeve to your left. 😀
The DIP socket isn't to protect the pins during shipping.
You have to leave it on as otherwise the long pins on the Romulator damage the DIP socket on the motherboard.
This might be insanely useful for game development. With the RPi sitting between a workstation and a real target system, it could be used to push a build to real hardware. No disks, SD cards, or special cartridges required. Just map it to wherever it's supposed to load into RAM from disk, and maybe hack an interrupt or KERNAL vector to auto-run. A spare I/O pin on the Rpi could also be rigged to the cartridge port to do a soft reset, side-stepping any CPU freeze problems.
Couple decades back I made a project called the EPROM emulator. This device had SRAM and logic to load the contents by copying binary file to LPT1 port with a computer having a parallel port and a compiler for the target. That thing was so nice when coding and testing code. Mostly used it with Intel MCS-51 family MCUs, but it is universally usable with any system with similar memory. This thing looks like a modern replacement of what that Elektor magazine design was.
David murray would love this tool, i hope hes aware of this.
He's one of Mr Black's top fans so he will be soon if he's not already got one.
Such an incredible project!!
Open Source FTW
I am actually amazed how many great open source projects are out there for the Commodore-Amiga series computers. I wish it were like that for the Sinclair. There are amazing designs for it too, almost in the same amount, but unfortunately 95% of them are commercial and a tad expensive compared to Commodore projects.
It seems to me that this could be very useful in designing a new 6502 based computer, especially when writing the ROM code.
Yep, this is a modern implementation of a classical debugging tool called an In-Circuit Emulator. They fell out of use due to signal problems on PCs as they got faster, but embedded systems, with their usually slower and simpler CPUs still have them as a major tool.
Yo, Adrian. Great video on an interesting tool.
Really good I remember building something similar in college in the 80's and just one memory chip cost as much as that board and mine had 4 chips on two Euro cards100mm x 160mm. I worked on my old vic20 as at home had a C128 at home. This brings memories back as still have it but never used since leaving college probably easier to buy this product instead of getting my old one working again as wire wrapped and probably some of the wires damaged.
Romulans and Romulator´s the two of the best friends. Anway great video as always. Must say the ROMulator seams to be damn nice thing to own.
I've just come here from the future... and, yes, indeed... it is very cool and very exciting! ;)
In the olden days, we used a lot of CP/M machines and they would load their basic from disc to RAM.... so the game of altering error messages and basic prompts is well known to me. We would spend ages trying to work out obscene versions of error messages that had the same number of characters as the "clean" originals.
There definitely needs to be a 6510 version.
Great video. I would really like a device like the ROMulator in my Acorn Electron.
That's a cool project!
oh my this is such a cool solution...
That's a very interesting device! I put it on my to do list. But I do have one complaint. When you started reading the letter I was hoping you would read using Casey Kasem's voice, "and here's a letter dated from 1973..." 😂
I'm so amazed that I'm speechless!
I can see this being a basis for a modern version of something like a Fluke 9010a. No need for the 9010 itself or the processor pods when you have a raspI for control. I wonder if it could be configured to test ram, roms, and the vic. Would be cool if it could be reconfigured for other processors too. Handy for arcade collectors for troubleshooting boards.
"Well hello" - Adrian, the Leslie Philips of the retro world. ;-)
FWLIW: As this board is FPGA based and is already capable of 'wright-through' a small update to the code should allow for full 'save state' functionality.
I would buy this if I had a vic20. Amazing stuff!
Wow, what an excellent tool and video! Amazing! Would like to see how this works on your Apple II
Used on an Atari 8-bit, the ROMulator becomes a tool like the Pro Action Replay cartridge such as for the PlayStation and with a utility you'll have to write, can hack games.
This is awesome, bagged one. :)
The romulator could replace hardware no longer available or port it to different devices. From the description it should be able to provide a floppy drive with something like dolphin dos including the extra RAM. I think parallel cable sockets are still available. Or even give a SFD1001 (Commodore 1MB 4133 Blocks free floppy drive) which already has a parallel bus extra RAM and the ability to store a whole track. Probably the necessary code to read, decode and send the track could be extracted and adapted from dolphindos or one of the other conversions for the 1541.
The ROMulatot is really cool! One more advancement would be the possibility to emulate the 6502 CPU itself.
This is really wild!
When I saw the thing, I thought it was a device that allows you to use 6502 for 6510. If only there was such a thing.
wish i had that thing 30 years ago. Like to see c64 on the bench with that
I was actually thinking of making something similar for the C64, only a cartridge solution. Mainly for game development and testing though. The product you showed here is nice but it lacks software tools. The ability to load/save only a part of the memory would be handy, along with a monitor to break, step and change memory on the fly.
Cheers,
It is open source. Do it. There is easy access to 6502 monitor tools online. Use/patch that for more features. I’d made something similar for z80 cpu with an arduino board. Not hard to do.
Wow, looks great! I usually use a bus pirate or TUMPA, with so many goofy commands to make something work. Ah, the TUMPA is the Tiao Usb Multi Protocol adapter.
But even I'm looking at FPGA for the future, heck you can get them able to capture at ghz speeds! Hoping for an affordable device for snagging lcd i/o signals. So someone could make an rgb/hdmi type of thing, only for lcd screens. Like a plug & play portable screen kit.
This is so cool!
This will come in handy even for save states!
Love your MECC shirt.
Amazing. Hopefully somebody makes something like this for Z-80 too.
Z80 version in development! The fpga board will be reusable from the 6502 version, so you would only need to replace the interface board which is pretty cheap.
35:27 - "It's the motherboard under the hood! It's going zeroes!" - Firesign Theater "Give Me Immortality or Give Me Death" (1998)
I'm not a 6502 expert, but if you just replace RAM contents of some 8080 or Z80 machine it would crash with pretty high probability since now it has unexpected contents on the stack. So first RET will fetch some unexpected return address from stack and will jump to some unexpected place. In order for it to work smoothly you need to save/restore CPU registers contents as well (including stack pointer)
Great episode.
Wow. Another cool feature with the Ram Passthrough. A memory test! You could literally determine the failed BIT after a few runs just cycle what the CPU writes to ram and then read the board ram and compare to the FPGA's ram. That is cool.
I'd be curious to see what you could do with that in a 1541 and the right fpga programming... IE Rasp Pi connected could auto-download any disk inserted. An auto-image maker. Or a bit level disk copy.
I'm impressed!
And actually as I think about it, you could build a near infinite ram space.
IE grab a chunk, 0x9000-0x9FFF, lose the first four bytes to use as banking addresses. So if you poke 0000, the chip switches in the next bank of ram.
An REU of sorts.
You could swap it faster than the cpu can request it. Man. That is a really cool gadget!
What an amazing device! Value for $$ for sure!
Just noticed the program listing at 25:02 doesn't look quite right. I wonder what happened there?
isn't the command "print" represented by a one or two byte token, and line numbers stored as hex but list as decimal equivalent. something like that. so when you go to the basic program space, you need to decode it like the basic rom does. oh, the plain text parts are shown verbatim.
@@fumthings I'm not sure, I'll have to do some checking.
I just noticed that when Adrian typed "LIST" after reloading the RAM via the Raspberry Pi console, the program wasn't the same.
@@michaelcarey sorry, i misunderstood. i think someone else suggested corruption of the bytes, the program still worked as before but line 10 is no longer visible (i think there was a commodore trick that does this) the next line number appears as a five digit number with no command following it , then line 20 appears as normal. maybe the fpga or Rpi didnt work properly, also the power cycling of the vic20 may have left some random data. Adrian said that when you power cycle it clears the program listing, i think maybe it only erases the first few bytes so the program listing is empty but the ram may still contain random data if it is power cycled quickly. whatever the cause, i suspect if Adrian performed that step again (maybe with a proper power cycle) it would perform properly and the weirdness would disappear. As it appears he didnt notice and didnt re video this part, the little weirdness slipped through.
I had to buy that thing. Thanks for showing this marvelous tool. A real bargain for €40.49 via PayPal with shipping to Germany.
Awesome tool. It's like Action Replay!
A great demo and explanation of a nice device. Purely for myself I've designed a 6502 circuit board and the romulator will be a useful device for finding the inevitable bugs in my layout and assembler code. I've made my board expandable so if I do design any expansions the romulator will help me debug them too.
BTW thanks for all your content! I usually watch your videos while I'm cooking our evening meal, so depending on what I've chosen to cook I might watch your content in 2, 3 or even 4 episodes across as many evenings. They usually slice up quite nicely
Dear Adrian and Basement community , how are you'all . I have discovered a Quantum effect in comparing circa 1980s computer motherboards and the post 2021 era motherboards . The effect is : those old motherboards had components which are difficult to desolder but easy to resolder ( if you do not have a desolderring station , which again requires high tech vacuum pumps and specialist equipment ) . Then post 2021 we have components which are easy to desolder ( because now we have the desolderring stations ) , but which have tiny little contacts which are difficult to resolder .
Just an FYI: The 40-pin socket isn’t there as a sacrifice part to protect the machine pins; it’s there because the machine pins can damage the 40-pin socket on the board that you’re testing. The 40-pin socket has smaller flat pins that won’t stretch out the holes in the socket on the board being tested.
For regular troubleshooting, I'd add a ZIF socket for the 6502.
What about 65C02 (Atari XL/XE, has a new HALT pin) , 6510 (C64, has extra I/O pins), etc?
Hi Richard,
Got a new version of the board out now which *should* support the 65C02 as well as 6502, but need to test it a bit more before making that claim fully!
@@bitfixer6502 Maybe you meant “65C02 as well as 6510*” ?
I think you mean 6502C, which is the Atari XL/XE specific version of the NMOS 6502. The 65C02 is a CMOS version of the NMOS 6502 which uses less power and has a number of improvements.
@@jeroensmaal You are correct sir! The thing about MOS' labeling was that it was as clear as mud. Yes, the Atari Sally chip was a 6502C. D'OH!
this is just for microcomputers? being able to use this on an NES as a real time, real hardware debugger would be amazing for homebrew development on actual hardware instead of emulators
I don't see any reason it wouldn't work but debugging on hardware I think it would be just as possible and less invasive to make a man-in-the-middle cartridge like the game genie and id be surprised if no one had done this.
I was thinking of the same thing, shouldn't be too hard to implement an adapter board that leaves the APU and other functions intact. Super curious and tempted to find out.
@@jwrush Should be able to do it with a Pro Action Replay, but those are difficult to come across and a lot more pricey. Still something interesting to look in to either way.
While the NES does run 6502 instructions, the CPU is only based on a 6502, so it's not pin-compatible. You could modify the romulator schematic to be compatible, but you're not going to get complete functionality because the NES's CPU includes the audio processor which means a small chunk of the memory map is inaccessible outside the CPU.
@@StarkRG The NES chip uses a core whose layout was copied directly from the 6502, except with the patented BCD arithmetic section disabled, so I'd describe it as being more than "based upon" the 6502, but the key point remains that the build-in audio and DMA subsystem will complicate things.
Userful, something this is useful for users.
I think that Adrian has motified a new word
man I love your name, "Adrian Black", sounds like a villain from resident evil:
WAIT, I GOT IT!;
Adrian Black;
Villian for Umbrella Corp,
has been building traps for Umbrella Corp to stop STARS and BSAA since the company first launched, never looked older due to being accepted by Uroboros, always happy, is disguised by his youtube channel Adrian's Digital Basement.
A 6510 version of this would be cool for doing this on the C64's.
When I made ZX spectrum in CPLD and independant Z80 with SRAM, there was simmilar effect. The video subsystem can crash or you can reset it while program is running. And game still runs. Even I reconfigured CPLD while running without crash. The only thing was important- cmos CPU with static clock available.
Well, just don’t hack in “Bad Wolf”.
Yes, this is awesome. However, as updating the "Pass-through" ram, I just think one simply write to the FPGA ram. Then have a routine running the VIC 20, read from the FPGA ram and write that out the "Pass-through" ram. But overall, the ROMulator seems to be great idea.
Pretty amazing. I'd also like to know if this works on the BBC micro.
I order this now. I am 6502 fun
All so it's sort of like the cartage super snap shot. It had a 8K ram chip to copy RAM it used from the C=64 to it's RAM chip so no RAM got messed up when you pressed the button.
Bitfixer i good guy just got a sdpet max and love it