- Group:
- Researcher: Researcher
- Active Posts:
- 1157 (0.29 per day)
- Most Active In:
- General Sonic Discussion (559 posts)
- Joined:
- 16-June 04
- Profile Views:
- 10045
- Last Active:
A minute ago- Currently:
- Viewing Board Index
My Information
- Age:
- Age Unknown
- Birthday:
- Birthday Unknown
- Gender:
-
Male
Contact Information
- E-mail:
- Click here to e-mail me
Previous Fields
- National Flag:
- None
- Wiki edits:
- 109
Latest Visitors
-
JorgeBunny 
10 Jun 2015 - 17:52 -
Jase 
30 May 2015 - 20:16 -
Xeal 
24 May 2015 - 09:55 -
MrTechNews 
21 May 2015 - 09:43 -
golden retrie... 
19 Mar 2015 - 04:02
Posts I've Made
-
In Topic: The Supreme Topic of 'Other' Knowledge.
20 July 2015 - 09:03 PM
Judging by this, that's Craig Sitt. ICEKnight did a interview with him years a go. -
In Topic: Creating a 60fps patch for Jet Set Radio (PC)
15 July 2015 - 02:50 PM
The game sets njRendererSetFpsLock to 0 for a split moment when the screen begins to fade and then sets it back to 1 again sometime while game is loading the next area.
I recorded a video of what it looks like when njRendererSetFpsLock is set to 0 for the actual gameplay (video might still be rendering):
If you want to achieve this effect yourself, open your copy of jetsetradio.exe in your favorite hex editor and look for the bytes 6A01E86FB9F4FF6A. Change the 6A01 part to 6A00 and save the .exe.
I still haven't figured out how to get the game to properly run as it should with this enabled. :\ -
In Topic: Creating a 60fps patch for Jet Set Radio (PC)
03 July 2015 - 09:11 PM
I had the same thought as well about the lack of variable frame rate. I'm wondering if the amount of frames produced in game is a hard coded value (41F00000 is 30.0 in single precision, but I think the game actually runs at 31.0 so maybe 41F80000). But then again, I don't know if the game could be passing this value directly within a subroutine or if that float is stored somewhere in the .data segment. It couldn't be something weird like 29.97 right?
Now that I think about it, does anyone know if the Android/iOS port runs at a variable frame rate or if it runs at any other framerate other than 30/31 during game play? I know the iOS version isn't supported with iOS 8, but maybe perhaps the Android port will yield a similar result? -
In Topic: Creating a 60fps patch for Jet Set Radio (PC)
03 July 2015 - 02:21 PM
Hm, njRendererSetFpsLock doesn't appear to be it. It unlocks the framerate so it runs at 60, but it causes the game to run at double the framerate (so everything is running too fast). You can tell that this isn't the way it's supposed to run because the in game timer runs at twice the speed. 0 disables the lock, 1 enables it. The game will disable the lock at the initial loading screen, the Heritage logo, and the loading screen in game.
The function that actually sets the njRendererSetFpsLock function to 1 for the gameplay is deProgress(). In my .exe, it's this:
.text:003386F0 ; =============== S U B R O U T I N E ======================================= .text:003386F0 .text:003386F0 .text:003386F0 deProgress proc near ; DATA XREF: sub_338740+1Fo .text:003386F0 push 1 .text:003386F2 call j_njRendererSetFpsLock .text:003386F7 push 62h .text:003386F9 mov isBusyLoading, 0 .text:00338703 call j_jtActionGet .text:00338708 add esp, 8 .text:0033870B test eax, eax .text:0033870D jnz short locret_338726 .text:0033870F push 0FF000000h .text:00338714 push 0FF000000h .text:00338719 push 0FF000000h ; struct CFrameWnd * .text:0033871E call j_?AFXSetTopLevelFrame@@YAXPAVCFrameWnd@@@Z_33 ; AFXSetTopLevelFrame(CFrameWnd *) .text:00338723 add esp, 0Ch .text:00338726 .text:00338726 locret_338726: ; CODE XREF: deProgress+1Dj .text:00338726 retn .text:00338726 deProgress endp .text:00338726 .text:00338726 ; ---------------------------------------------------------------------------
Pseudo code:
void deProgress() { j_njRendererSetFpsLock(1); isBusyLoading = 0; if ( !j_jtActionGet(98) ) AFXSetTopLevelFrame((struct CFrameWnd *)0xFF000000); }
The game is very picky some times when you load it up. Sometimes the game runs at a choppy frame rate if your computer's been on for a while, so that explains why I didn't see the effects of changing the parameter from 1 to 0 initially. I restarted my computer and tried again and this time I got results. But again, this isn't exactly the 60fps I had in mind. I think we'll need to disable the lock as well as change one more thing to allow the game to actually render 60 new frames in one second. -
In Topic: New Sonic 1 Alpha Screens Discovered
30 May 2015 - 09:32 PM
ICEknight, on 30 May 2015 - 09:07 PM, said:
LOst, on 30 May 2015 - 06:54 PM, said:As for the parallax scrolling techniques often talked about in this demo:
I did found a few references in Sonic 1's code labels that state there were once two layers of objects in the game.
Here are some of the Sonic 1 references (ported to C). The name of the second object layer was officially ZQuote
Nice. Where did you find these names?Off topic: I did discover the name of the queued/buffered compressed art in the labels as well. The name is divdevwk.
From the Sonic CD symbol names list I found a few years a go.
The two games have a lot of similarities with one another, so it's understandable they share the same symbol names too.

Find My Content
A minute ago
Male