+ Reply to Thread
Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: Printing information to screen

  1. #1
    Join Date
    Dec 2009
    Posts
    6

    Post Printing information to screen

    I've scene people do hacks like this on other consoles (N64 to be exact).
    Like somehow forcing text to display on the screen to display info (DMA pointers, values, etc).
    I've done simplier hacks in assembly before, but im wondering how these types of hacks are done?
    Would this be incredibly advanced in ASM?
    They would be really useful for me.

    Also, is it possible to assemble C code into MIPS R3000/R5900?
    I've heard of people doing their ASM hacking in a programming language and then just assembling their code into the console ASM?
    Im way more familiar with C than I am with MIPS, so that would be useful to me if im on the right track...
    Last edited by CLH; 02-11-2010 at 12:21:03 AM.

  2. #2
    Join Date
    Jul 1999
    Posts
    7,089

    Default

    I remember GTLCPimp did some stuff with screen printing for PS2. What system did you hope to perform these hacks for?
    I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

  3. #3
    Join Date
    Jan 2009
    Location
    somewhere
    Posts
    28

    Default

    I dunno if this is the same, but I've done stuff like this with Animal Crossing for the Wii/DS

    It actually isn't that hard if you just modify existing text. For my games, for example I wanted to see the value stored in a certain place

    I used an ASM routine to load the value from that address, convert it from hexadecimal to ASCII, find where the text is stored, and replace the text with the ASCII value (or whatever way text is handled in the game).
    To actually make text appear on screen that isn't already there, that would be harder.
    Last edited by dragonboy269; 02-16-2010 at 03:33:41 PM.
    I only hack games that I like >:I
    And I ONLY use assembly O_o XD

  4. #4
    Join Date
    Dec 2009
    Posts
    6

    Default

    Quote Originally Posted by Lazy Bastard View Post
    I remember GTLCPimp did some stuff with screen printing for PS2. What system did you hope to perform these hacks for?
    PS2 actually.
    Is that guy a active member here?

    Quote Originally Posted by dragonboy269 View Post
    I dunno if this is the same, but I've done stuff like this with Animal Crossing for the Wii/DS

    It actually isn't that hard if you just modify existing text. For my games, for example I wanted to see the value stored in a certain place

    I used an ASM routine to load the value from that address, convert it from hexadecimal to ASCII, find where the text is stored, and replace the text with the ASCII value (or whatever way text is handled in the game).
    To actually make text appear on screen that isn't already there, that would be harder.
    Unfortunately, my game has no text on the HUD that isn't a image.
    (well, it does, but the one peice of text that is actually there can only use about 6 characters.)
    So I will have to take the long road and try to force the game to write to the screen.
    But I do know the hex value for each individual character in the font table. (sucks it didn't use ascii, took forever to find :P )


    Also here is a example of someone doing what im wanting to do.
    He didn't replace text, but rather forced the game to display it.
    http://www.youtube.com/watch?v=fqvIw3Abd5k
    Last edited by CLH; 02-21-2010 at 08:33:03 PM.

  5. #5
    Join Date
    Jul 1999
    Posts
    7,089

    Default

    Yes, though he's been quite busy lately. I'll link him to this thread.
    I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

  6. #6
    Join Date
    Sep 2008
    Posts
    231

    Default

    Quote Originally Posted by CLH View Post
    PS2 actually.

    Also here is a example of someone doing what im wanting to do.
    He didn't replace text, but rather forced the game to display it.
    http://www.youtube.com/watch?v=fqvIw3Abd5k
    From the way the video looks it seems like he is using an ASM code to access the game's pre-existing screen print functions. If you wish to accomplish like that you must first locate the game's screen printing functions and figure out how it manipulates the arguments given, can't really explain much there other than that method is game specific and would be more stable for the game. However if you want to force the output your own method so it has the ability to work with more than just that specific game, then you must write a stand alone application (yes you can use C as long as you have the tool chains and a Linux emulator if you are a Win32 user). Your application must have it's own stand alone graphics library implemented so that it can print to the screen by itself without accessing any IOP module to do so (see the Graph example for drawing boxes found in the tool chain download), and when you launch the game from your application you must force a hook from either the game or Kernel (preferable the game since it is more stable and has a better chance of returning the game to it's normal state than Kernel hooking an application). Granted if you want the full power of the application you must set it to loop within itself, pausing the game play, other wise it will run extremely slow (depending on how much drawing is done on the screen).

    Here is a video of the work I produced for the PS2 console:
    http://www.youtube.com/watch?v=EPXUgznS-Tc
    (Since it utilizes the controller for user input, it must be configured for each game it operates under.)
    Last edited by Gtlcpimp; 02-22-2010 at 01:24:04 PM.

  7. #7
    Join Date
    Jul 1999
    Posts
    7,089

    Default

    However if you want to force the output your own method so it has the ability to work with more than just that specific game, then you must write a stand alone application (yes you can use C as long as you have the tool chains and a Linux emulator if you are a Win32 user). Your application must have it's own stand alone graphics library implemented so that it can print to the screen by itself without accessing any IOP module to do so (see the Graph example for drawing boxes found in the tool chain download), and when you launch the game from your application you must force a hook from either the game or Kernel (preferable the game since it is more stable and has a better chance of returning the game to it's normal state than Kernel hooking an application).
    Incidentally, if you produce such a module, it will be quite helpful for Artemis
    I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

  8. #8
    Join Date
    Sep 2008
    Posts
    231

    Default

    Sooner or later I will completely finish the sub-project, however here is some improvement. Completely worked out the kernel hooking to be 100% stable, and here is a working example (attached is 'kmod_IG-Print.elf" should work with every game, if not let me know). It displays a white strip on the top of the screen with a black square that moves across from left to right at all times.
    Attached Files Attached Files

  9. #9
    Join Date
    Jul 1999
    Posts
    7,089

    Default

    Wow, awesome!

    That's HUGE progress.
    I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

  10. #10
    Join Date
    Sep 2008
    Posts
    231

    Default

    Egh... This next attachment, don't expect it to be a perfect worker.. I'm only uploading it to take a poll on:

    1) How many games contain the same value it scans to find the "Joker"
    2) How many games it actually works with 70%+ without freezing (even if it only works in the menus of the game let me know)

    How to use it = Stick your game in your ps2, then launch the ELF from any ELF launcher of your choice (I use uLE4.12)
    If it is working, you will see a red bar at the top of the screen. At first it will fill in with blue, this is the delay bar. Once it completely fills, it turns into a sky blue color, and fills in with the blue again. This is the progress of the scan for the "Joker". Once it all disappears, that means it detected it. If it keeps emptying and re-filling, that means it cannot find it. However if it detects it, and it all disappears, use the following keys:

    L2 + R2 = Display the "Joker" and the value of the controller input
    L1 + R1 = Hide display
    Attached Files Attached Files
    Last edited by Gtlcpimp; 02-27-2010 at 12:34:23 AM.

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Similar Threads

  1. SMB Title Screen - Add Music
    By SMB2J-2Q in forum Last Generation & Retro Hacking
    Replies: 0
    Last Post: 07-15-2010, 04:30:22 AM
  2. R4DS Information & FAQ
    By dlevere in forum Current Generation Hacking
    Replies: 1
    Last Post: 07-05-2010, 03:29:08 AM
  3. post your desktop screen shot!
    By MIR in forum The Lounge
    Replies: 2
    Last Post: 05-25-2007, 05:45:49 PM
  4. Porn Causes Military Information Leak
    By LiquidManZero in forum The Lounge
    Replies: 1
    Last Post: 04-06-2007, 09:30:09 AM
  5. NeoGenesis and using GG codes (red screen bypass)
    By Striderx99 in forum Last Generation & Retro Hacking
    Replies: 1
    Last Post: 08-07-2006, 08:37:31 PM
Collapse this box.

Visitors found this page by searching for:

Nobody landed on this exact page from a search engine, yet!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts