Welcome, Guest. Please login or register.

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

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1606
    • View Profile
Getting rid of the loading screen
« on: 14 Apr 2016, 19:59 (7 years and 11 months ago) »
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: 8 Nov 2016, 12:45 by Dav999 »

Ally 🌠

  • tOLP Contributor
  • Hyper Captain
  • *******
  • Posts: 1360
  • <3
    • View Profile
    • Ally 🌠
Re: Getting rid of the loading screen
« Reply #1 on: 15 Apr 2016, 03:37 (7 years and 11 months ago) »
Now all we need is the command line level chooser.

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1606
    • View Profile
Re: Getting rid of the loading screen
« Reply #2 on: 15 Apr 2016, 14:28 (7 years and 11 months ago) »
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: 15 Apr 2016, 17:11 by Dav999 »

SJMistery

  • tOLP2 Tester
  • Professor
  • ****
  • Posts: 125
    • View Profile
Re: Getting rid of the loading screen
« Reply #3 on: 16 Apr 2016, 07:43 (7 years and 11 months ago) »
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: 16 Apr 2016, 08:43 (7 years and 11 months ago) »
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: 1085
    • View Profile
Re: Getting rid of the loading screen
« Reply #5 on: 16 Apr 2016, 09:10 (7 years and 11 months ago) »
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: 1606
    • View Profile
Re: Getting rid of the loading screen
« Reply #6 on: 16 Apr 2016, 09:36 (7 years and 11 months ago) »
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: 1085
    • View Profile
Re: Getting rid of the loading screen
« Reply #7 on: 16 Apr 2016, 09:54 (7 years and 11 months ago) »
99, DD, FF, and 01.

Dav999Topic starter

  • Administrator
  • Hyper Captain
  • *
  • Posts: 1606
    • View Profile
Re: Getting rid of the loading screen
« Reply #8 on: 16 Apr 2016, 10:22 (7 years and 11 months ago) »
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: 1606
    • View Profile
Re: Getting rid of the loading screen
« Reply #9 on: 7 Nov 2016, 16:38 (7 years and 4 months ago) »
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: 8 Nov 2016, 12:46 by Dav999 »

Info Teddy

  • Ultra Captain
  • ********
  • Posts: 3121
    • View Profile
Re: Getting rid of the loading screen
« Reply #10 on: 25 Feb 2020, 11:50 (4 years and 0 months ago) »
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: 1606
    • View Profile
Re: Getting rid of the loading screen
« Reply #11 on: 25 Feb 2020, 18:29 (4 years and 0 months ago) »
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).