Sonic and Sega Retro Message Board: Yoshimaster96 - Viewing Profile - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help

Group:
Trial Member: Trial Members
Active Posts:
30 (0.08 per day)
Most Active In:
Engineering & Reverse Engineering (3 posts)
Joined:
06-July 14
Profile Views:
1004
Last Active:
User is offline Jul 19 2015 05:23 PM
Currently:
Offline

My Information

Age:
Age Unknown
Birthday:
Birthday Unknown
Gender:
Not Telling Not Telling

Contact Information

E-mail:
Private

Previous Fields

Project:
Super Monkey Ball hacking!
National Flag:
None

Topics I've Started

  1. I got bored, so here's a demo!

    16 June 2015 - 12:50 PM

    Some random 3D demo I made:
    Link
    Enjoy!

    [EDIT]
    Added a third program with color.
  2. Building a compiler, need help!

    15 June 2015 - 02:21 PM

    I'm building a compiler for a very simple language I made, targeted towards MIPS32. The entry point is always 0xC00000, and free RAM is from 0x50000-0x6BFFFF. Unfortunately, I'm not doing so well. I've tried C, C#, recursive descent, shunting-yard, pretty much everything. I am to my wits end. Anyone that can help me would be appreciated. Here are the specifications:

    Pseudocode to parse tokens (does it work?):

    get token
    if token is _inc, parse include file
    if token is _def, define constant
    if token is _iff/_els, generate the following for _iff ( a op b ) { c } _els { d }:
    evaluate a in assembly
    evaluate b in assembly
    branch to end if ( a op b ) is false
    { c }
    j end2
    end
    { d }
    end2
    if token is _jmp, generate the following for _jmp label
    j label
    if token is _ret, generate the following for _ret { r }
    evaluate r in assembly
    addu $v0, $r0, r
    jr $ra
    nop
    else
    if line is function call, generate the following for foo ( arg1 , arg2 , ... , argn )
    decrease stack pointer to allocate args
    load args to stack
    jal foo
    nop
    increase stack pointer by same amount
    if line is assignment, generate the following for a = { b }
    evaluate b in assembly
    sw b, 0(&a)

    All variables are 1 word (32 bits).

    All variable names, function names, labels, and control words
    are exactly 4 characters in length, labels must end in underscore.

    Variables cannot be initialized in their declarations.

    Only integer values accepted.

    Control word list:

    _inc _def _iff _els _jmp _ret

    Valid operations:

    + - * / %
    & | ^
    << >>

    Comparisons:

    == != < <= > >=

    Unaries:

    - (negation of constants) $ (value at address)

    Example code segment (prni prints integer, no syscall used):

    test.r:

    ================
    varb

    main ( )
    {
    varb = 4
    prni ( varb )
    }
    ================
  3. Let's hack Super Monkey Ball!

    14 June 2015 - 12:56 PM

    This is my first attempt, where I found out that the collision wasn't quite right. I later found that the collision was in a separate file:
    Posted Image
    Posted Image
    This is my attempt at vertex shading. Stages such as Master 2 use this:
    Posted Image
    This is my custom texture test. You can tell what it's a picture of:
    Posted Image
    I tried SMB2, the files were exactly the same:
    Posted Image
    Posted Image
    I later edited the lz file (which is compressed). My first attempts crashed the game, but later attempts I placed some objects.
    Posted Image
    Note that none of these have the correct collision, or in the case of the last one, has no collision at all. And there you have it. Me hacking Super Monkey Ball!