What's new
You might want to also NOP writes to the flash chip. Commands sent are only valid for the Intel E28F128J3A chips:
Read Array SCS/BCS 1 Write X 0xFF 1
Read Identifier Codes SCS/BCS = 2 Write X 0X90 Read IA ID 1,7
I was able to get crysking to boot, but the bank switching implementing by the crystal system doesnt appear to be working as I expected it to. Not sure what is wrong. Perhaps it is related to the flash id check. As I shared there is not a device id check implemented on topbladev or evosocc --- so I will have to get the micro controller and usb online to flash evosocc and see how it behaves, but I'm thinking topbladev is working properly simply because its only 16mbyte and doesnt bank switch.

As for the J3 commands being written, they are ignored as they dont have any meaning to S29GL devices.
BTW my patched topbladv has also been confirmed working on real hardware:
Did you patch anything else beyond the values from MAME? I only used those values with my testing.
 
It appears to allow extending the IMM value of the next(?) instruction.
Yeah, that's how I read that as well. The description reads like it was translated by someone without a technical background, and it seems to be one of their major marketing angles...
 
I solved the problem!!

20190713_225750.jpg

@Apocalypse a couple days ago I mentioned in pm that I noticed during debugging the flash id check that the bios was checking all possible banks to see if memory was present (I think it was just looking for data vs 0xffffffff (openbus?)). crysking is 48mbyte (3 x 16mbyte banks), and I had added topbladv (1 x 16mbyte) directly after it to optimize space usage. Set the upper address bits via the cpld to only allowed access to lowest 64mbyte of flash. This was the problem. Solution was to only allow access to the 3 x 16mbyte areas of the flash where crysking is located and open bus the rest of the flash.

Solution in Verilog:

reg ce;

always @(*) begin
case ({e1, e2, ba2, ba1, ba0})
5'b00_000: ce = 1'b0;
5'b00_001: ce = 1'b0;
5'b00_010: ce = 1'b0;

default: ce = 1'b1;
endcase
end

assign flash0_ce = ce;
assign addr[25:23] = {1'b0, ba1, ba0};

:thumbsup:
 
@brizzo, glad you found it quickly and that it was simple enough. It explains why the patched version of COK works perfectly on real hardware without the PIC by reprogramming only first flash. In that case only 3 chips are accessible by hardware.

We can now say multi will fulfill all expectations. :thumbsup:
 
I solved the problem!!

20190713_225750.jpg

@Apocalypse a couple days ago I mentioned in pm that I noticed during debugging the flash id check that the bios was checking all possible banks to see if memory was present (I think it was just looking for data vs 0xffffffff (openbus?)). crysking is 48mbyte (3 x 16mbyte banks), and I had added topbladv (1 x 16mbyte) directly after it to optimize space usage. Set the upper address bits via the cpld to only allowed access to lowest 64mbyte of flash. This was the problem. Solution was to only allow access to the 3 x 16mbyte areas of the flash where crysking is located and open bus the rest of the flash.

Solution in Verilog:

reg ce;

always @(*) begin
case ({e1, e2, ba2, ba1, ba0})
5'b00_000: ce = 1'b0;
5'b00_001: ce = 1'b0;
5'b00_010: ce = 1'b0;

default: ce = 1'b1;
endcase
end

assign flash0_ce = ce;
assign addr[25:23] = {1'b0, ba1, ba0};

:thumbsup:
You guys make me feel so goddamn "R Worded". I love this forum.
 
Hi

After reading half of the thread, I'm interested, as usual, in this multi

Now I also need to get a motherboard too :)
 
Thanks @brizzo -- Cutey Fatty looks like a fun cute 'em up slim 'em up , the description is uttely ridiculous 8|

A girl named 'Cutey Fatty' weighs over 100kg but she really wants to be a super model. So she has to lose weight fighting her favourite foods around the town. Her enemies are hamburgers, chocolate cookies and ice creams and so on. She should defeat the enemies and lose weights with getting vegetables and fruits in every stage. While the game playing, the scale is indicating her real time weights and she can lose weight more easily with intensive exercises if she finds secret door. And Toto her pretty dog helps to defeat the enemies.
 
Project Update!

Been busy the past couple weeks, but I found the time to get the microcontroller soldered and ported the pc host / flash programming code to this design.

In the photos you see a mess of wires. Two wires were to fix a small oversight (leaving FLASH /RST signal floating during programming, connect to cart edge normally, and connecting an output signal to an input only pin on the cpld). The other four wires were to allow the microcontroller access to the cpld jtag port.

That means the software can now update the CPLD logic over USB, so in the future if we find additional games of unknown sizes it will be simple to change the dip switch banking/mapping to support different rom sizes. I'm excited about this!

I'm also happy with the DIP switch that I selected. The switches can easily be adjusted with finger nails and have a tactile feel and snap into position when pushed.

Overall the hardware design is finished, just need to make a few small changes to the pcb design and send it for final fabrication. Software is 85% done, just need to design a simple to understand method for managing rom slots.

Pre-orders?

I believe the market for this multi cart is rather small. I don't like to do pre-orders, but in this case to manage risk I would like to do a small round of pre-orders.

At this point the cover my costs retail price will be $250 USD, for those who jump on early I will give a discount for their support.

Send me a PM if you would like to pre-order; Expecting to have ready to ship middle of August or sooner.

:thumbsup:
 

Attachments

  • 20190723_165001.jpg
    20190723_165001.jpg
    178.6 KB · Views: 167
  • 20190723_165017.jpg
    20190723_165017.jpg
    249.8 KB · Views: 167
First?

I'm excited! PM sent.

Will this fit in a cart shell or not since the switches? If not, what are we talking for options?
 
Holy crap, 3 messages for pre-order in under 10 minutes. I appreciate the support guys.

I'm still not convinced I will sell more than 10 of these carts, but I definitely know everyone here is crazy for multis! :D
 
Yep. Just us lunatics probably. If you think 10 I’d bet the under.
 
I’m possibly too going to sell my Evolution Soccer cart to fund this. Just wondering if there’s any use keeping the shell from it at this point.
 
Back
Top