Sonic and Sega Retro Message Board: SADX/SA1 Hacking/Modding - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 186 Pages +
  • ◄ First
  • 145
  • 146
  • 147
  • 148
  • 149
  • Last ►
    Locked
    Locked Forum

SADX/SA1 Hacking/Modding Now with more research and development!

#2191 User is offline Strife 

Posted 27 July 2015 - 12:16 PM

  • Posts: 1858
  • Joined: 19-October 11
  • Gender:Male
  • Location:United States
  • Project:Freedom Planet 2
Do you suppose it'd be possible to have the HUD scale up based on the resolution?

#2192 User is offline MainMemory 

Posted 27 July 2015 - 12:30 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4223
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
Of course it is!

We just haven't figured out how yet...

#2193 User is offline Dude 

Posted 27 July 2015 - 12:39 PM

  • Posts: 3137
  • Joined: 11-September 04
  • Gender:Male
  • Location:Southbridge, MA
  • Project:Random VR/AR trash
  • Wiki edits:43
As far as I know, the HUD is kind of an ad-hoc deal, and each drawcall would need to be investigated. The game definitely wasn't built with a scalable UI in mind, although they did have to make some adjustments when porting it to PC.

It's been a long time since I've messed with it though.

#2194 User is offline Morph 

Posted 27 July 2015 - 01:05 PM

  • AKA SonicFreak94.
  • Posts: 767
  • Joined: 01-August 08
  • Gender:Male
  • Location:Utah
  • Project:SA1/2 hax
  • Wiki edits:11
Unrelated: I forgot to post these.

Pause Hide mod - press X+Y to hide the pause menu.
Idle Chatter - press Z (RB) to listen to your character blab.
This post has been edited by Morph: 28 July 2015 - 04:56 PM

#2195 User is offline Strife 

Posted 31 July 2015 - 01:17 PM

  • Posts: 1858
  • Joined: 19-October 11
  • Gender:Male
  • Location:United States
  • Project:Freedom Planet 2
Posted Image

I cobbled together a small mod that changes the texture of the numbers on the HUD and Trial menu to match the Dreamcast version. Use in conjunction with a Dreamcast model swap for best effect, of course.

https://www.mediafir...d0gw0s7u30sh5zw

Just extract the zip to your root folder and it should pop up in SADX Mod Manager.

#2196 User is offline GerbilSoft 

Posted 31 July 2015 - 01:22 PM

  • RickRotate'd.
  • Posts: 2844
  • Joined: 11-January 03
  • Gender:Male
  • Location:USA
  • Project:Gens/GS
  • Wiki edits:5,000 + one spin

View PostMorph, on 27 July 2015 - 01:05 PM, said:

Idle Chatter - press Z (RB) to listen to your character blab.

aka a taunt button. :v:

Are you really feeling it?

Challenge: Try porting it to Ocarina codes for the GameCube version. I'm not sure if you'd need different memory locations for the different regions, but based on the source for this mod, it shouldn't be more than a couple DWORDs worth of codes.
This post has been edited by GerbilSoft: 31 July 2015 - 01:25 PM
Reason for edit: +Ocarina

#2197 User is offline CheatFreak 

Posted 03 August 2015 - 05:28 PM

  • Everything or Nothing.
  • Posts: 54
  • Joined: 22-May 13
  • Gender:Male
  • Location:Michigan
  • Project:BetterSADX Patch
On the subject of SADX hacking- this might be of worth to some people.

While I was working on the new version of the BetterSADX patch (which is essentially a converter that turns the steam port into the 2004 port- including some of y'alls community mods to make things more pretty.) I decided to "reverse engineer" that stupid AppLauncher.exe, by which I mean- not even pay attention to what it does, and then write a program that does the same thing, but better.

If you aren't aware- old versions of SADX on steam would run either Sonic Adventure DX.exe or config.exe based on what the user chose in the client- they changed this in the Achievements update for some reason and now it used some AppLauncher.exe that is passed arguments from the steam client based on user input.

Figured them out. It's /bootgame and /bootconfig.

Wrote a tiny program in C# that does runs sonic.exe if /bootgame and runs SADXModManager.exe if /bootconfig so people can replace the steam port with the 2004 port again.
Again I did this specifically for BetterSADX, but if you guys would like to use it for your own purposes, feel free to. I'd include the source but I can't seem to find it at the moment.
It's a simple program anyway though.

https://u.teknik.io/0nkpnq.7z

-- To avoid a double post --

@MainMemory
I was bored so I made some textures for your Goal Ring mod. Yeah I don't know why I did it either- just wanted to photoshop a thing.
I might make ones for the Tutorial/Instructions screen too- just so I can wipe out any evidence of the capsule ever existing out completely.
PVR files for the mod/system folder: https://u.teknik.io/BTT9KB.zip
Posted Image
This post has been edited by CheatFreak: 13 August 2015 - 08:20 AM

#2198 User is offline evilhamwizard 

Posted 19 August 2015 - 07:38 PM

  • Posts: 1275
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
Small bump.

JmTsHaW posted a codebreaker code for the US 1.1 version of SA1 for enabling 60fps. I know the frame limit was found a while a go, but I never saw anything that altered the framerate before.

Reposting the video just in case.



Quote

Sonic Adventure has two addresses controlling the framerate. One that limits the FPS of the game and another that speeds the game up or down to match it.

Usually the game runs at 30 FPS and only runs at 60 FPS in the menus or in Twinkle Circuit, so I decided to look at how the game could handle running in 60 FPS in regular play.

It lags quite a bit on an actual dreamcast in some places, but you can use this codebreaker code to force the game to 60 FPS:
FPS: 01758F3C 00000001
Speed: 01758F44 00000001

You can also do it with cheat engine but the address is at different places in emulators. To find it in cheat engine just find whatever the address for ring count is at and replace the last four numbers with 8F3C and 8F44.

Keep in mind what I've said is only compatible with the U v1.1 version. Although you could probably find it for the other versions too.


I haven't tested the code myself, but the video doesn't really show off 60fps for some reason...

Can anyone else confirm the code works?
This post has been edited by evilhamwizard: 19 August 2015 - 07:38 PM

#2199 User is offline sonicblur 

Posted 19 August 2015 - 09:44 PM

  • Posts: 1217
  • Joined: 18-February 08
  • Gender:Male
  • Wiki edits:6

View Postevilhamwizard, on 19 August 2015 - 07:38 PM, said:

I haven't tested the code myself, but the video doesn't really show off 60fps for some reason...

Can anyone else confirm the code works?

Works! Well, I don't have 1.1 though.

So here's a 1.0 port:
01754EBC 00000001
01754EC4 00000001

You can enter it as one code, instead of two separate ones. The results are weird, cutscenes sometimes run too fast, and when the game can't run at 60fps there is no frameskip so the entire thing slows down. But when it can do so, it's a nice smooth 60fps.

I have capture hardware, but I can't capture VGA and my Dreamcast is hooked up over that. If anyone really wants, I can record a 60fps video off-TV with my phone though.

#2200 User is offline MainMemory 

Posted 19 August 2015 - 10:13 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4223
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339

View PostCheatFreak, on 03 August 2015 - 05:28 PM, said:

-- To avoid a double post --

@MainMemory
I was bored so I made some textures for your Goal Ring mod. Yeah I don't know why I did it either- just wanted to photoshop a thing.
I might make ones for the Tutorial/Instructions screen too- just so I can wipe out any evidence of the capsule ever existing out completely.
PVR files for the mod/system folder: https://u.teknik.io/BTT9KB.zip
Posted Image

I wish you had double posted because that's really cool. Can I include those in the Goal Ring Mod?

#2201 User is offline CheatFreak 

Posted 19 August 2015 - 10:21 PM

  • Everything or Nothing.
  • Posts: 54
  • Joined: 22-May 13
  • Gender:Male
  • Location:Michigan
  • Project:BetterSADX Patch

View PostMainMemory, on 19 August 2015 - 10:13 PM, said:

I wish you had double posted because that's really cool. Can I include those in the Goal Ring Mod?

Sure thing- but I think there were some global index inconsistencies in the ones I posted so here: https://u.teknik.io/28mXkk.zip
Double checked the Global Index numbers to make sure they matched up and all work properly.

But yeah- absolutely include them.

#2202 User is offline sonicblur 

Posted 19 August 2015 - 11:19 PM

  • Posts: 1217
  • Joined: 18-February 08
  • Gender:Male
  • Wiki edits:6

View Postevilhamwizard, on 19 August 2015 - 07:38 PM, said:

I haven't tested the code myself, but the video doesn't really show off 60fps for some reason...

The video wasn't offering 720p60 as an option when you posted it, but it appears to offer it now. You can see the difference when watching directly on Youtube in 60fps. (Not sure if the embedded one supports 60fps)

I recorded a crappy video from my own version. Interestingly, his version 1.1 appears to behave differently than my 1.0 port of the code:
https://youtu.be/W6HrVbOMElM

In his video, when the game drops below 60fps, it skips frames. On mine, the entire game slows down. Not sure if this is because part of the code isn't working in my port due to different offsets, or if the two versions behave differently. I'm guessing it's the latter, since the game-clock itself slows down. Also, the demos don't sync, which you can see in my video.

#2203 User is offline evilhamwizard 

Posted 20 August 2015 - 04:55 AM

  • Posts: 1275
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109

View Postsonicblur, on 19 August 2015 - 11:19 PM, said:

View Postevilhamwizard, on 19 August 2015 - 07:38 PM, said:

I haven't tested the code myself, but the video doesn't really show off 60fps for some reason...

In his video, when the game drops below 60fps, it skips frames. On mine, the entire game slows down. Not sure if this is because part of the code isn't working in my port due to different offsets, or if the two versions behave differently. I'm guessing it's the latter, since the game-clock itself slows down. Also, the demos don't sync, which you can see in my video.


That might be his emulator doing that?

I looked into those two locations in RAM to see which functions were accessing it. In my copy of Sonic Adventure (V1.0005 NTSC-U 10/5/99), this is the subroutine of interest:

ROM:8C051760 set_framerate:                          ; CODE XREF: sub_8C049298+12p
ROM:8C051760                                         ; sub_8C049560+10p ...
ROM:8C051760                 mov.l   #unk_8C754EC8, r0 ; Move Immediate Long Data
ROM:8C051762                 mov     r4, r3          ; Move Data
ROM:8C051764                 mov.l   #unk_8C754EC0, r2 ; Move Immediate Long Data
ROM:8C051766                 mov     #0, r3          ; Move Immediate Byte Data
ROM:8C051768                 mov.l   #RAM_Framerate, r6 ; Move Immediate Long Data
ROM:8C05176A                 mov.l   #RAM_Framelock, r1 ; Move Immediate Long Data
ROM:8C05176C                 sts.l   pr, @-r15       ; Store System Register Long
ROM:8C05176E                 mov.l   r4, @r6         ; Move Long Data
ROM:8C051770                 mov.l   r4, @r2         ; Move Long Data
ROM:8C051772                 mov.l   #sub_8C051810, r4 ; Move Immediate Long Data
ROM:8C051774                 mov.l   r5, @r1         ; Move Long Data
ROM:8C051776                 mov.l   r3, @r0         ; Move Long Data
ROM:8C051778                 mov.l   #sub_8C605234, r3 ; Move Immediate Long Data
ROM:8C05177A                 jsr     @r3 ; sub_8C605234 ; Jump to Subroutine
ROM:8C05177C                 nop                     ; No Operation
ROM:8C05177E                 mov.l   #sub_8C055C44, r2 ; Move Immediate Long Data
ROM:8C051780                 jmp     @r2 ; sub_8C055C44 ; Jump
ROM:8C051782                 lds.l   @r15+, pr       ; Load to System Register Long
ROM:8C051782 ; End of function set_framerate
ROM:8C051782
ROM:8C051784 ; ---------------------------------------------------------------------------
ROM:8C051784                 mov.l   #RAM_Framerate, r5 ; Move Immediate Long Data
ROM:8C051786                 mov     r4, r3          ; Move Data
ROM:8C051788                 mov.l   #unk_8C754EC0, r2 ; Move Immediate Long Data
ROM:8C05178A                 mov.l   r4, @r5         ; Move Long Data
ROM:8C05178C                 rts                     ; Return from Subroutine
ROM:8C05178E                 mov.l   r4, @r2         ; Move Long Data


I'm a little unclear at the moment as to what it does exactly, but it seems that this subroutine takes 2 parameters (stored in r5 and r4) which are stored before this subroutine is called. r4 contains the Framerate parameter and r5 contains the Framelock (or 'Speed' in JmTsHaW's case). Both are usually 2 when called, with the rare exception with what I imagine is the menu screen. There are 6 locations in 1ST_READ.bin where the values for the parameters are loaded into the registers before this function is called. Here are the locations along with the two bytes that must be changed in 1ST_READ.bin (or in track03.bin if you want to modify it that way) in order for the game to run at 60 FPS completely:

000392AC -> 01 E4 (change in track03.bin @ 0x4635F46C)
0003956E -> 01 E5 (change in track03.bin @ 0x4635F72E)
0003E662 -> 01 E5 (change in track03.bin @ 0x46365402)
00044736 -> 01 E5 (change in track03.bin @ 0x4636C316)
00072AAE -> 01 E5 (change in track03.bin @ 0x463A14FE)
0008A1D2 -> 01 E5 (change in track03.bin @ 0x463BC3F2)

Of course, one of these changes also causes the cutscenes to run at a ridiculous speed (the animations and choreography I imagine are timed to 30 frames). Other than that, under the latest version of Demul at least, it plays and works like a dream. I don't get any slow down at all that isn't caused by the emulator itself.

Anyways, here's my video.
This post has been edited by evilhamwizard: 20 August 2015 - 12:00 PM

#2204 User is online Dark Sonic 

Posted 20 August 2015 - 08:14 AM

  • Posts: 11635
  • Joined: 21-April 06
  • Gender:Male
  • Project:Working on my art!
  • Wiki edits:10
So I'm curious. What files contain the hud, menu, and any other on screen graphics like the tails race bar and the treasure hunting and the mission graphics? I was thinking of working on a reimagining of those graphics since they were severely over looked when the game was ported.

#2205 User is offline MainMemory 

Posted 20 August 2015 - 10:41 AM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4223
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
Various PVM archives and PVR files in the system folder contain all the textures in the game (assuming you mean PC version). There's a partial list at SCHG:Sonic Adventure/Textures.

Also CheatFreak I've added your textures to the Goal Ring Mod.
This post has been edited by MainMemory: 20 August 2015 - 10:45 AM

  • 186 Pages +
  • ◄ First
  • 145
  • 146
  • 147
  • 148
  • 149
  • Last ►
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users