nand2mario / snestang

Super Nintendo Entertainment System for Tang FPGA boards
GNU General Public License v3.0
166 stars 17 forks source link

Allow switching between the snestang and nestang cores #23

Open nand2mario opened 4 weeks ago

nand2mario commented 4 weeks ago

This will require writing to the onboard SPI flash.

nand2mario commented 4 weeks ago

Try these test builds. Flash the .fs and firmware normally. And then put the relevant .bin cores in /cores dir on the sd card.

snestang-0.8-core-switch-test.zip

nestang-0.11-core-switch-test.zip

djjohnson13p commented 3 weeks ago

Tested and working! Great job! Is their potential for this to be automated? ie: core auto selected via rom selection?

cyberwisk commented 3 weeks ago

I also tested it here and it works perfectly, the only thing missing is the LEDs that flashed when you pressed A and B, that was cool :-)

radiance28 commented 3 weeks ago

I was able to switch to the NESTang core from the SNESTang core. It is not possible to go back from the NESTang core. Freezes when selecting SNES core

nand2mario commented 3 weeks ago

I was able to switch to the NESTang core from the SNESTang core. It is not possible to go back from the NESTang core. Freezes when selecting SNES core

It also happened for me several times, although not every time. Let me look into it.

nand2mario commented 3 weeks ago

Kindly try the new test builds below. This fixed the hang for me when switching from nestang back to snestang.

nestang-0.11-core-switch-test2.zip snestang-0.8-core-switch-test2.zip

radiance28 commented 3 weeks ago

Kindly try the new test builds below. This fixed the hang for me when switching from nestang back to snestang.

nestang-0.11-core-switch-test2.zip snestang-0.8-core-switch-test2.zip

I checked with your firmware. If you just switch from kernel to kernel, everything works fine. But if you play any games in the NESTang kernel and decide to switch to the SNESTang kernel, the progress freezes on different “kb” numbers of the kernel loading progress, as if it cannot free up memory for changing the kernel. Switching from SNES core to NES still works well even after running some games.

djjohnson13p commented 3 weeks ago

I've not been able to reproduce this issue I can swap between cores without issues multiple times. Are you using the ps2 pmod or nes/snes. I'm using nes/snes so not sure if that makes a difference for this or not

nand2mario commented 3 weeks ago

Cannot reproduce here either. I'll go ahead and release this and let's track down any further issue later.

radiance28 commented 3 weeks ago

Accurate reproduction of problem: Let's program NESTang, launch Abadox(j).nes, return to the main menu, switch the kernel to SNESTang - it's frozen.

https://github.com/nand2mario/snestang/assets/19339857/514779c0-e996-4f10-8461-b5934d9d4789

Retropickles commented 3 weeks ago

Also experiencing this issue. Flashed it following instructions on GitHub. It will write the .bin doesn’t matter what core is flashed when it asks for a reboot, I power down and it hangs and it just shows an amber light on the sd reader pmod.

djjohnson13p commented 2 weeks ago

I tried recreating the problem specifically with the above mentioned rom as well as some hacked roms and still not having issues switching cores. I will say that I have the tang primer 25k hard wired into an NES front loader shell, I'm using the front nes controller ports with wired after market nes controllers, power is ran from USB-A output from TV that is supplying power routed through the power/reset button switch on the NES front loader then USB-C to the Tang. Lastly as previously mentioned I'm using the snes.bin and snes.fs as those are wired directly to the tang ports where the ps2 pmod would normally be plugged in. That seems to be the only obvious difference in our software flashes. If you have an nes/snes controller you can wire to the board it may be worth a shot.