Welcome, Guest. Please login or register.

Author Topic: Getting rid of the loading screen  (Read 2166 times)

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1591
    • View Profile
Getting rid of the loading screen
« on: April 14, 2016, 07:59:50 PM »
The fake loading screen can be pretty annoying, especially because VVVVVV automatically pauses whenever the window loses focus.

Luckily, I've found that you can bypass most of it with a simple hexedit of the VVVVVV binary.



Platform-specific instructions:

VVVVVV M&P on Windows (latest build; 10202016): address 122457 should be 64 (100), change that to 00.
VVVVVV M&P on Windows (older build; 06182014): address 5BAE0 should be 64 (100), change that to 00.
VVVVVV full version on Windows (2.2, oct-2016 build): address 123C67 should be 64 (100), change that to 00.
VVVVVV full version on Windows (2.2, older build): address 123BF7 should be 64 (100), change that to 00.
VVVVVV M&P on Linux x86_64 (latest build; 10202016): address 167DF1 should be 63 (99), change that to 00.
VVVVVV M&P on Linux x86_64 (older build; 06182014): address 15DC31 should be 63 (99), change that to 00.
VVVVVV full version on Linux x86_64 (2.2, oct-2016 build): address 169A31 should be 63 (99), change that to 00.
VVVVVV full version on Linux x86_64 (2.2, older build): address 15F871 should be 63 (99), change that to 00.

Note: read "address FFFFFF should be 64 (100)" as "address FFFFFF should have a hexadecimal value of 64 (which is 100 in decimal)".

If the address listed above does not have a value of 64 or 63 in your binary, then I guarantee you this will not work for that binary.
« Last Edit: November 8, 2016, 12:45:52 PM by Dav999 »

Kiwi Alexia ♡

  • tOLP Contributor
  • Hyper Captain
  • *******
  • Posts: 1351
  • Wii Homebrew and 3ds CFW is easy.
    • View Profile
    • VVVVVV Resource
Re: Getting rid of the loading screen
« Reply #1 on: April 15, 2016, 03:37:45 AM »
Now all we need is the command line level chooser.

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1591
    • View Profile
Re: Getting rid of the loading screen
« Reply #2 on: April 15, 2016, 02:28:19 PM »
Added instructions for VVVVVV M&P on Linux. And replaced the Dropbox .flv link by an embedded YouTube video.

Edit: added instructions for the full version of VVVVVV on Linux.

More edit: added instructions for the full version on Windows (hopefully it works for non-Steam versions as well).
« Last Edit: April 15, 2016, 05:11:24 PM by Dav999 »

SJMistery

  • tOLP2 Tester
  • Professor
  • ****
  • Posts: 125
    • View Profile
Re: Getting rid of the loading screen
« Reply #3 on: April 16, 2016, 07:43:22 AM »
cmon, the loading screen is intended to imitate old school games. geting rid of it would be like geting rid of the red underwear Superman carries around

Lollipop

  • tOLP Contributor
  • Captain
  • *****
  • Posts: 398
  • aaaaaaAAAAAAAAA
    • View Profile
Re: Getting rid of the loading screen
« Reply #4 on: April 16, 2016, 08:43:15 AM »
cmon, the loading screen is intended to imitate old school games. geting rid of it would be like geting rid of the red underwear Superman carries around

+1

Shiny K

  • tOLP Contributor
  • Hyper Captain
  • *******
  • Posts: 1091
  • 6.28318530717958647692528...
    • View Profile
Re: Getting rid of the loading screen
« Reply #5 on: April 16, 2016, 09:10:36 AM »
I set it to both 68 and 69 and it went a bit past 100 for some reason, but other values jumped straight to 100. This is pretty interesting, dav.

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1591
    • View Profile
Re: Getting rid of the loading screen
« Reply #6 on: April 16, 2016, 09:36:40 AM »
I set it to both 68 and 69 and it went a bit past 100 for some reason,
Logical, because 68 and 69 are 104 and 105 so you're making the percentage go up to that.

but other values jumped straight to 100. This is pretty interesting, dav.
Other values like which ones?

Shiny K

  • tOLP Contributor
  • Hyper Captain
  • *******
  • Posts: 1091
  • 6.28318530717958647692528...
    • View Profile
Re: Getting rid of the loading screen
« Reply #7 on: April 16, 2016, 09:54:51 AM »
99, DD, FF, and 01.

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1591
    • View Profile
Re: Getting rid of the loading screen
« Reply #8 on: April 16, 2016, 10:22:01 AM »
99, DD and FF probably overflowed to negative if this fake percentage is a 1-byte integer from -128 to 127 (0x99 is 153)

Counting from 00 to 01 is near-instant anyway.

Try 32, and it'll count to 50% :P

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1591
    • View Profile
Re: Getting rid of the loading screen
« Reply #9 on: November 7, 2016, 04:38:15 PM »
New versions of VVVVVV have been released, so I've started finding out the addresses for these new versions! I've already done the M&P version for Windows, other ones are coming soon.

Edit: added Linux 64 bit M&P and full version.

Edit 2: added full version for Windows
« Last Edit: November 8, 2016, 12:46:29 PM by Dav999 »

Info Teddy

  • Ultra Captain
  • ********
  • Posts: 3136
    • View Profile
Re: Getting rid of the loading screen
« Reply #10 on: February 25, 2020, 11:50:54 AM »
instead of changing the value being compared, why not just find this line in the binary...
Code: [Select]
game.gamestate = PRELOADER...and change it to be...
Code: [Select]
game.gamestate = TITLEMODE...? of course, the only problem is there are basically no helpful labels in the hexeditor.

the enums are found in Enums.h:
Code: [Select]
enum
{

GAMEMODE, TITLEMODE, CLICKTOSTART, FOCUSMODE, MAPMODE, TELEPORTERMODE, GAMECOMPLETE,  GAMECOMPLETE2, EDITORMODE, PRELOADER

};
so it looks like TITLEMODE is the constant 1 and PRELOADER is the constant 9.

the linux version having debug symbols (thanks flibit!) should make this somewhat easier.

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1591
    • View Profile
Re: Getting rid of the loading screen
« Reply #11 on: February 25, 2020, 06:29:36 PM »
Since the source is released, sure. As far as I remember it's much easier to find the percentage value being compared without anything like debug symbols or the source code since VVVVVV displays the percentage, so you know what to search for in some memory analysis tool (on Windows I used Cheat Engine and on Linux I'm pretty sure I used gdb in some way).