Code Monkey home page Code Monkey logo

2003scape / rsc-c Goto Github PK

View Code? Open in Web Editor NEW
70.0 7.0 16.0 115.5 MB

🍫 runescape classic client ported to C

License: GNU Affero General Public License v3.0

Makefile 0.11% C 88.92% Roff 0.56% Shell 0.76% Objective-C 1.92% CMake 0.13% M4 0.20% JavaScript 0.12% HTML 3.08% Swift 0.01% Ruby 0.01% Batchfile 0.01% Python 0.03% Meson 0.01% CSS 0.01% C++ 3.42% Perl 0.07% Metal 0.01% Assembly 0.09% Java 0.55%
runescape rsc c-game sdl2 wii wii-homebrew 3ds 3ds-homebrew decompilation nintendo

rsc-c's People

Contributors

alarixnia avatar conker-rsc avatar hikilaka avatar ipkpjersi avatar misterhat avatar retrogamer02 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rsc-c's Issues

fix models at barbarian agility course in opengl

RSC-C_GL_Render_Bug_1 5_Maybe

i think it has to do with faces that are near-0 in colour

fixed with:

if (vertex_colour.r <= 0.0f && vertex_colour.g <= 0.0f && vertex_colour.b <= 0.04f  ) {
    discard;
}

but i'd rather do it before it gets sent to the shader

handle ::onlinelist command

Potential Enhancement OpenRSC server can view a list of all online players.
RSC-C simply cashes when this command is used currently.

Ground item highlighting

Probably not worth doing this Fully Customizable Runelite Style since RSC doesn't have many items to begin with. Colour coding for items like rune and dragon, ignore bones/ashes, etc.

android client sound issue

There's a sound glitch with the client
Was mass buying feathers from shop, 200 of em
Was spam clicking buy
After I was done buying the sound just kept looping on and on, even after I clicked log out
Ok tested it again seems it's not infinite it just loops each buy sound for all 200 feathers

SIGSEGV in mudclient_draw_experience_drops

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000000000045d13c in mudclient_draw_experience_drops (mud=0x7d8b3155f940)
    at src/ui/experience-drops.c:29
29              sprintf(formatted_remainder, "%.2f",
[Current thread is 1 (process 5763)]
(gdb) bt
#0  0x000000000045d13c in mudclient_draw_experience_drops (mud=0x7d8b3155f940)
    at src/ui/experience-drops.c:29
#1  0x0000000000419f72 in mudclient_draw_ui (mud=0x7d8b3155f940) at src/mudclient.c:4638
#2  0x000000000041c821 in mudclient_draw_game (mud=0x7d8b3155f940) at src/mudclient.c:5287
#3  0x000000000041c913 in mudclient_draw (mud=0x7d8b3155f940) at src/mudclient.c:5342
#4  0x000000000041d61e in mudclient_run (mud=0x7d8b3155f940) at src/mudclient.c:6473
#5  0x0000000000410297 in mudclient_start_application (mud=0x7d8b3155f940, 
    title=0x47e8d1 "Runescape by Andrew Gower") at src/mudclient.c:1200
#6  0x000000000041e84a in main (argc=1, argv=0x7f7fffecbfd8) at src/mudclient.c:6880

Crash in OpenGL client related to tile menu generation

This code is pretty doomed:

https://github.com/2003scape/rsc-c/blob/master/src/ui/menu.c#L1318

    int walkable = selected_face != -1;

#if defined(RENDER_GL) || defined(RENDER_3DS_GL)
    walkable = mud->scene->gl_terrain_walkable;
#endif

    if (walkable) {
[...]

selected face can be -1 on an OpenGL client when a menu is generated.

This results in using -1 as an array index:

                mud->menu_item_x[mud->menu_items_count] =
                    mud->world->local_x[selected_face];

                mud->menu_item_y[mud->menu_items_count] =
                    mud->world->local_y[selected_face];

Which triggers the undefined behavior sanitizer and (in my case) triggers a segfault.

The fix is not as simple as changing the if statement to check that selected_face != -1, that breaks walking.

Someone who understands the OpenGL code please look at this.

I've had luck reproducing around Draynor Manor's vampire basement.

dynamic compact mode

nix MUD_IS_COMPACT at compile time and dynamically switch to compact UIs if the window size is smaller than 512x346.

diverse scenery option

some scenery was added only after pay-to-play and is seldom used elsewhere. this includes:

  • fireplace
  • dead tree
  • blue flowers
  • some of the ferns found around yanille
  • damaged earth
  • crude bed

there are two unused signs which could be added without negative effects:

  • The rising sun
  • The forester's arms

Remove embedded copy of GLEW?

The GLAD code is simpler, doesn't require us to ship a Windows dll, and probably works on more platforms.

It doesn't like -pedantic though.

Disabling Ground Item Models and Relaunching Crashes Client

Running on Windows.

Disable ground models in the options menu
Click "Save and Close" on the options interface.
Close the client. Client cannot be opened again. It just crashes with no error message.
The last thing printed to the console is the "Loaded: x frames of animation" message.

This can of course be fixed by going into the options.ini and setting ground_item_models back to 1.

This also occurs if you set ground_item_models = 0 through the ini with the client closed and then try to launch the client.

report abuse

maybe with an internal setting for different UI eras

Refuses to Connect

Exactly what the title says: I can log into RuneScape from everything BUT this client. This one just gives a connection error.

Cant put up trade items

Attempted to trade with someone and found I could not put up any items to trade from my end. Could however see items being put up for trade from other player.

3ds sign up

Hello. I’ve use the QR code to install the port. I’ve tried signing up through the port but get an error

3ds screenshots

will need to include a PNG encoder. hopefully able to do the filesystem operations in another thread since SD card writing is very slow.

Bank Interface Opens After Message Box

In the RSCP server, after doing the ::onlinelist command (which sends a black box with a list of all the players online) and closing the box by clicking the "Click here to close window" text, the bank interface will open.
The interface will be completely blank, and you won't be able to deposit or withdraw anything.
I haven't been able to reproduce this with any other commands that send black boxes so far.

SIGSEGV in mudclient_show_message

#0  0x0000760fa4759b00 in strcpy () from /usr/lib/libc.so.12
No symbol table info available.
#1  0x000000000045df4f in mudclient_show_message (mud=0x760fa415f240,
    message=0x7f7fffcb0910 "@whi@@que@@cya@Global$@ora@[@gre@Migeman@ora@]: @cya@Buying nats 450ea",
    type=MESSAGE_TYPE_QUEST) at src/ui/message-tabs.c:452
        i = 1
        message_length = 70
        max_text_width = 497
        coloured_message = "@whi@@que@@cya@Global$@ora@[@gre@Migeman@ora@]: @cya@Buying nats 450ea\000\000\000\000\000"
        message1 = 0x0
        last_space = <optimized out>
        last_colour = {<optimized out>, <optimized out>, <optimized out>}
        i = <optimized out>
        position = <optimized out>
        message2_length = <optimized out>
        message2 = 0x0
        message2_offset = <optimized out>
#2  0x000000000045e2b4 in mudclient_show_server_message (mud=0x760fa415f240,
    message=0x7f7fffcb09d8 "@que@@cya@Global$@ora@[@gre@Migeman@ora@]: @cya@Buying nats 450ea")
    at src/ui/message-tabs.c:502
        formatted_length = 71
        formatted_message = "@whi@@que@@cya@Global$@ora@[@gre@Migeman@ora@]: @cya@Buying nats 450ea"
#3  0x000000000041e2e1 in mudclient_packet_tick (mud=0x760fa415f240) at src/packet-handler.c:1183
        message = "@que@@cya@Global$@ora@[@gre@Migeman@ora@]: @cya@Buying nats 450ea\000"
        timestamp = 570131
        size = 66
        data = 0x760fa4170584 "\002@que@@cya@Global$@ora@[@gre@Migeman@ora@]: @cya@Buying nats 450ea`\r\022\352`\021\022\352`\n\023\352`\017\023\352`\022\023\352`\025\023\352`\v\024\352`\r\024\352`\021\024\352`\v\025\352`\r\025\352`\017\025\352`\022\025\352`\b\026\352`\023\026\352`\t\030"
        opcode = SERVER_MESSAGE
#4  0x000000000040fca0 in mudclient_handle_game_input (mud=0x760fa415f240) at src/mudclient.c:3773
        mouse_x = 0
#5  0x0000000000410c20 in mudclient_handle_inputs (mud=0x760fa415f240) at src/mudclient.c:4106
No locals.
#6  0x0000000000416389 in mudclient_run (mud=0x760fa415f240) at src/mudclient.c:6507
        k1 = 256
        last_delay = 10
        time = 570115
        k2 = 0
        timing_index = 3
        j = 256
        delay = 10
        i1 = 107
#7  0x00000000004090da in mudclient_start_application (mud=0x760fa415f240,
    title=0x472049 "Runescape by Andrew Gower") at src/mudclient.c:1215
        init = 48
        windowflags = 36
#8  0x00000000004175b8 in main (argc=1, argv=0x7f7fffcb1188) at src/mudclient.c:6932
        mud = 0x760fa415f240

Up to Date Builds

Are any up to date releases available with the latest updates for 3DS? I do not have a machine set up to build a CIA for myself and would love to try things out.

Game crashes if player was on member area (upstairs/underground) and client is loaded as free version

Tested on the webclient, when a player is on member area (ex. [512,1923]) and then login happens over free world, then a division by zero crash happens leading to black screen.

There is a stack trace but not sure how meaningful it is:

mudclient.js:225 Uncaught RuntimeError: divide by zero at mudclient.wasm:0x27f14 at mudclient.wasm:0x55d68 at mudclient.wasm:0x473b5 at mudclient.wasm:0x47f22 at mudclient.wasm:0x47c00 at mudclient.wasm:0x15fa8 at mudclient.wasm:0x1279c at mudclient.wasm:0x119c1 at mudclient.wasm:0x2f9c5 at ret.<computed> (mudclient.js:11327:35)

touch client keyboard

Also a couple of small QOL suggestions if you don't mind, just what I've noticed: clicking on someone in friends list doesn't bring up keyboard like it does on the other client

this can apply to any of the social list popups and offer-x.

fix Jagex's mismatched textures

<Stormy> [crumbled wall texture being updated in textures7.jag] makes most of the places where it was used look inconsistent.
<Logg> yeah, i guess he thought he only needed one crumbled wall :ehehe:
<Logg> and then realized "oops no i need that other crumbled wall"
<Logg> and now sapphire house is mismatched like you said. >_<
<Stormy> first use of that texture was likely Ghost Town.
<Logg> for rsc-c client, make it so that it uses textures7 crumbled wall if you are in the wilderness :ehehe:
<Logg> it's a bug fix
<Stormy> yeah, we can do that.
<Stormy> we could also fix the windows in e.g. Rimmington, which suffered the same issue.

Ground items kept past lifetime

To reproduce:

  • Teleport to Falador
  • Walk to house that has a leather gloves spawn downstairs
  • Go up and down ladder repeatedly
  • Gloves duplicate

204 protocol.

fix invalid player index/corruption

RPReplay_Final1706134769.mov

I’m the all green with orange beard
My screen was switching to the dude in the gnome outfit

not sure what's going on here exactly yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.