TL;DR: Speedrunner looking for potential techniques
Hi all,
I’m currently maintaining two projects (in a different community) about potential techniques on different platforms that could be considered for speedrunning purposes.
I’m looking for two primary things edit: regarding Virtual Boy:
– answers to my 2 technical questions,
– any experiences of oddities on a real hardware.
1 – Sub frames input
– Is it possible for a game to poll the controller multiple time within a single frame (x02000010, 0x02000014, 0x02000028)?
2 – Cart swapping
– Does it have a “cart lock”, a plastic piece preventing cart swapping while the console is powered on?
If you are interested in my current state of my projects, here are the links:
http://tasvideos.org/PlatformResources/Vboy.html
http://tasvideos.org/MESHUGGAH/ForbiddenTechniques.html
Thanks in advance 🙂
- This topic was modified 5 years, 8 months ago by MESHUGGAH.
MESHUGGAH wrote:
Is it possible for a game to poll the controller multiple time within a single frame (x02000010, 0x02000014, 0x02000028)?
Yes, the game pad component operates independently from the video component, so input can be processed multiple times per display frame. I don’t know if any commercial games do this, though; honestly haven’t checked. If I had to place a wager, though, I would guess that all commercial games process input once per frame.
MESHUGGAH wrote:
Does it have a “cart lock”, a plastic piece preventing cart swapping while the console is powered on?
There’s nothing preventing the cartridge from being removed while powered on, but I don’t know whether or not the hardware will issue a reset interrupt when inserted. Even if it doesn’t, the open bus behavior (zeroes gives you [font=Monospace]MOV r0, r0[/font], ones gives you [font=Monospace]OUT.W lp, -1[lp][/font]) will send the current program position rocketing out of the solar system, making it impossible to reliably time the insertion correctly.
Hot-plugging cartridges has been discussed before:
https://www.planetvb.com/modules/newbb/viewtopic.php?post_id=26057#forumpost26057
1 – So subframe input polling is possible technically, thanks! Will check the released titles and see if I find multiple polling.
My first idea would be simply putting a breakpoint on reads to 0x02000028 and check Bit 1 (Read) Hardware Input in Progress how many times changes in a single frame.
2 – Good, so no plastic piece lock.
The linked thread mentions:
“insert a cart with battery backed SRAM while the system is on, the system resets.”
Other note I see on VB Development Wiki:
“In commercial cartridges, /RESET (pin 7) is connected to the SRAM CS2 and MM1245 reset IC. This is done in order to protect the SRAM from spurious writes during power-failure and during startup when VCC is unreliable/unstable.”
Does this affects other (released, commerical) cartridges too?