Dreamcast 60fps codes

Discussion in 'Sega Dreamcast Development and Research' started by asasega, Nov 15, 2017.

  1. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    tested with the three tosec versions from this thread
    https://assemblergames.com/threads/req-dreamcast-archive.53514/
    code needs conditionals because the two addresses we modify are modified by the game during fmv and loadings
    first part modifies the instruction responsible for the fps limit to 30
    second part modifies the speed value responsible for physics and timers etc

    for japanese version
    0D01BF2A
    00007002 //check if correct instruction
    0101BF2A
    00007001 //modify fps instruction

    0D3BC90E
    000041F0 //check correct value
    023BC90C
    42700000 //modify speed value

    for pal and us version
    0D01BF2A
    00007002
    0101BF2A
    00007001

    0D3BBBEE
    000041F0
    023BBBEC
    42700000
     
  2. WarRen22

    WarRen22 Robust Member

    Joined:
    Feb 23, 2008
    Messages:
    215
    Likes Received:
    10
    there is any way to put this mods on a iso?
     
    Greg2600 and fafadou like this.
  3. 8bitplus

    8bitplus Gutsy Member

    Joined:
    Feb 25, 2008
    Messages:
    476
    Likes Received:
    48
    I'd also love to see a bootable permanent 60fps version of this game
     
  4. fafadou

    fafadou Enthusiastic Member

    Joined:
    Aug 3, 2016
    Messages:
    522
    Likes Received:
    218
    Yeah it will be very nice to build an iso with this framerate.
    But the vga is at 60hz already, isn't it ?
     
    WarRen22 likes this.
  5. yzb37859365

    yzb37859365 Spirited Member

    Joined:
    Jul 14, 2013
    Messages:
    187
    Likes Received:
    124
    for japanese version
    0D01BF2A
    00007002 //check if correct instruction
    0101BF2A
    00007001 //modify fps instruction

    0D3BC90E
    000041F0 //check correct value
    023BC90C
    42700000 //modify speed value


    The 2 modified addresses should be in the file LEMANS24.BIN

    Address 0xbf2a (02 changed to 01)

    Address 0xfd520 (00 00 F0 40 changed to 00 00 70 42)
     
    Esppiral, fafadou and WarRen22 like this.
  6. 8bitplus

    8bitplus Gutsy Member

    Joined:
    Feb 25, 2008
    Messages:
    476
    Likes Received:
    48
    Thanks, I'll build and test over the weekend
     
    Anthony817 and fafadou like this.
  7. fafadou

    fafadou Enthusiastic Member

    Joined:
    Aug 3, 2016
    Messages:
    522
    Likes Received:
    218
    An iso with 60 fps and a widescreen hack ? :

    0229B90C
    3F400000
     
    Anthony817 likes this.
  8. 8bitplus

    8bitplus Gutsy Member

    Joined:
    Feb 25, 2008
    Messages:
    476
    Likes Received:
    48
    I was just going to do the 60fps if possible. I don't play Dreamcast on a widescreen TV.
    I keep it real with a 4:3 CRT :)
     
    fafadou likes this.
  9. 8bitplus

    8bitplus Gutsy Member

    Joined:
    Feb 25, 2008
    Messages:
    476
    Likes Received:
    48
    Are all the values changed in that bin? or the track bins for the GDI?
    HxD sill good to use?
    Its been a long time since I last did hex editing.
     
  10. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Tony Hawk's Pro Skater T40205N V1.000

    60fps
    01103DC8
    00000009

    43BC2C48 offset track5.bin

    Tony Hawk's Pro Skater 2 T13006N V1.001

    60fps
    010CC248
    00000009

    3979D388 offset track5.bin

    regarding Le mans 24, yzb37859365 gave the correct offsets
    for japanese version HDR-0149 V1.000
    52B59EA offset track5.bin for fps
    53CAD70 offset track5.bin for speed value
     
    Last edited: Nov 17, 2017
    Anthony817 likes this.
  11. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    ECCO the Dolphin - Defender of the Future HDR-0103 V1.005

    60fps
    0103337C
    00000009

    3F866D5C offset track5.bin

    Gameplay is normal speed, but if you let the game to demo itself at the title screen, the demo is double speed. If I fix the demo then the gameplay is double speed, weird. Maybe yzb37859365 can take a look, the code around 8C04B10C is the part that seems to calculate the game speed.
     
    Esppiral and Anthony817 like this.
  12. Anthony817

    Anthony817 Familiar Face

    Joined:
    May 12, 2010
    Messages:
    1,123
    Likes Received:
    595
    Good idea posting other 60fps hacks! This should become the official 60FPS hacks thread now like the widescreen hacks thread.
     
  13. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Redline Racer T15002M V1.001

    60fps
    01025C74
    0000E401

    9EF44B4 offset track11.bin
     
    fafadou and Anthony817 like this.
  14. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Monaco Grand Prix Racing Simulation 2 T17701M V1.006

    60fps
    011622C2
    0000E400

    8852E52 offset track22.bin
     
    fafadou and Anthony817 like this.
  15. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Sega GT - Homologation Special HDR-0054 V1.006

    60fps
    0116ED08
    0000E400 //fps
    01028084
    000000A6 //timer fix

    0202C214 42700000
    0202C268 42700000 //car handling, physics etc
    0202C2C0 42700000
    0202C334 42700000
    0202C58C 42700000
    0202C7C4 42700000
    0202D218 42700000
    0202D2C0 42700000
    0202D8E8 42700000
    0202D988 42700000
    0202DCB8 42700000
    0202DE30 42700000
    0202DF18 42700000
    0202E358 42700000
    0202F4C4 42700000
    0202FD80 42700000
    02030200 42700000
    02030F18 42700000
    02031008 42700000
    02031408 42700000
    02032518 42700000
    020327A0 42700000
    020335C4 42700000
    0203412C 42700000
    02035120 42700000

    1. fps 159E16C8 offset track15.bin
    2. timer fix 1586A2D4 offset track15.bin
    3. the next 25 values
    start 1586EDE4 offset track15.bin
    end 15879250 offset track15.bin (inclusive)
    just modify all occurrences of 0000F041, all 25 of them
    Not sure if all are necessary, but surely is a combination of them because there is acceleration, traverse speed, distance etc. Don't have the patience to find the right combination. Anyway game works ok, could make the same laptimes as in 30fps.
     
    Esppiral, fafadou and Anthony817 like this.
  16. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Maybe this will help people hack dreamcast games, in the absence of an emulator with debugging features.
    There is a way to have breaking points and stepping trough the code , seeing the registers etc using demul and cheat engine.
    Use the following addresses with cheat engine, the addresses are valid for the latest demul(but is easy to find for other versions or any other emulator)
    demul.exe+875E410 this is the PC register
    demul.exe+875E3FC this is the PR register
    demul.exe+875E2C0 this is R0 register, next to it are the rest of the registers
    demul.exe+875E320 this is FR0 register, next to it are the rest of float registers
    For accuracy switch demul CPU mode to interpreter.
    Separate in notepad(or any other program) have the main elf disassembled obtained by any sh4 dissasemmblers available.
    Example 1: if you simply want randomly to break and step, just set a write to the PC register, then just press F9(run in cheat engine) and see nicely the value of PC register increasing where it jumps etc
    Example 2: let's say you find the ammo address for Biohazard, then set a write breakpoint to that adress and when the break happens just look at the PC register. The value of the PC is the exact location in the dreamcast elf where the write happened. Then if you just want to step further, set an additional writebreakpoint to the PC register, this way you can continue stepping from the initial ammo break that happened. You just follow the PC values in the opened dissasembled file.
    These methods work for any emulator and cheat engine is nice because it is a value seracher and debugger in one.
    P.S. english is not my first language
     
    Esppiral, Mrneo240 and Anthony817 like this.
  17. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Exhibition of Speed T22903D 50V1.000

    60fps
    010127F0
    000089E3 //fps
    01012870
    0000E33C //timings

    E5B4850 offset track11.bin
    E5B4A00 offset track11.bin
     
    Anthony817 likes this.
  18. 8bitplus

    8bitplus Gutsy Member

    Joined:
    Feb 25, 2008
    Messages:
    476
    Likes Received:
    48
    What is the default fps on MSR? could that be given the asasega 60fps magic?
     
    Anthony817 likes this.
  19. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    F1 Racing Championship 17706D-50 V1.001

    60fps
    0105FE20
    0000E401

    CC4DF40 offset track12.bin

    Looney Tunes Space Race T15116N V1.000

    60fps
    0D014552
    00007102
    01014552
    00007101

    7EA2E2 offset track17.bin

    @8bitplus, for MSR the user kabuto_kun(iirc in the widescreen thread) already posted a code
     
    Esppiral and Anthony817 like this.
  20. asasega

    asasega Rising Member

    Joined:
    Sep 22, 2007
    Messages:
    67
    Likes Received:
    72
    Racing Simulation 2 - Monaco Grand Prix On-Line T-45006D50V1.002

    60fps
    011969A8
    0000E400

    1165CA78 offset track21.bin
     
    Anthony817 likes this.

Share This Page