Original Post

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, 2 months ago by MESHUGGAH.
3 Replies

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.

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?

 

Write a reply

You must be logged in to reply to this topic.