2015-06-18 05:26:25

I have officially released the first version of my Pokémon Crystal Access project, which is a set of scripts to make Pokémon Crystal accessible to screen readers.
Visit the homepage here

Differences from the previous beta versions:

1. Autohotkey is no longer needed.

2. Keybindings have been changed.

3. The source is on Github, see the homepage.

Thumbs up +6

2015-06-18 05:41:51

This is great, congratulations on the great work.
greetings and thanks you very much.

sorry my english, is not my native language.

2015-06-18 07:15:32

Hello, I need some help. How do I run the lua script tools, and doing the things it says in the read me?  I got the rom loaded, it's the lua parts I am confused about. I haven't worked with lua stuff yet.  Pokemon crystal is my childhood game, and I'd love to play this again, with these scripts.  Thank you all for any help you may give.

Thumbs up

2015-06-18 07:21:45

1. Go to the tools menu, lua, New Lua Script Window. alt t, l, enter.

2. Press browse, type or select pokemon.lua, and press enter.

3. Press run in the lua script dialog. It should say ready, then you can close the dialog and play.

Thumbs up +1

2015-06-18 09:50:47

What are we supposed to do if it doesn't say ready? I sat there for about 5 minutes and nothing when I clicked run with the script loaded.

Underworld Tech.
Accessibility from us, to you.
Visit us

2015-06-18 13:36:27

Also, do you have to run the script every time you start the game?

Thumbs up

2015-06-18 14:47:12

could we have some water sounds so we know where we can fish?

Thumbs up

2015-06-18 16:35:33

@arqmeister That's right, we have to set the scrip every time you run the game.
I have understood that.
@tspivey No way to use the scrip with a game room in another language?
Greetings and thanks.

sorry my english, is not my native language.

2015-06-18 17:15:17 (edited by tspivey 2015-06-18 17:16:46)

About other languages:

First, I'd try loading it up and see what works and what doesn't.

The script needs to find certain data in ram to work properly, and also map character codes to characters. If either of these two things change between versions, you'll need to find the new values and put them in.

For example, in English Crystal, the map group and number are at 0xdcb5 and 0xdcb6, while in Japanese crystal they're at 0xdc7b and 0xdc7c. In English, the character 0x80 is mapped to "A", while in Japanese it's mapped to "ア".

If you're aiming for Japanese Crystal, I've got most of that already.

You're mostly on your own if you do this though. You can use the disassembly of the English rom as a reference.

After that, you'll have to translate the map and sprite names. The map names won't matter so much, since it only effects the read map key, and there aren't a lot of sprite names.

Thumbs up +3

2015-06-18 19:45:51

Hi tspivey,

first of all, it's a really cool thing to play this game.

Now, I have a question and perhaps it's possible to do this. Because my language is german, I downloaded the german rom "pokemon: kristall version". And I made it that all texts are read in german now. Only the sounds aren't playing for walking and if I have to write names the letters aren't spoken anymore.

Do you think there is a way to make it work? I think a lot of german people were happy to play a game in german!

I really hope you can help!

Thank you!


2015-06-18 20:39:54

In all my years of playing pokemon, I never dreamed that anything like this project would ever be possible. I just accepted the fact that I'd never be able to play the games at anything close to their full potential, but I'm so glad to say that I was wrong! This is a hell of a long way from spinding 40 minuts bumping into the same walls over and over again wondering how to get to the next map, or having to depend on someone or some gamefaqs guide to read the story line. Navigating still takes a little bit of brain power and messing around, but when you think about how big of a difference it is from playing the game without these scripts it's kinda mind boggling. Man, it's things like this that really get me pumped up about the future of gaming for VI folk. So to the developer I'll just say thank you, and like I said in the last topic, this really is a big deal!

Thumbs up

2015-06-18 20:42:08

Here's my thoughts as I'm trying briefly to make the german rom work.
What doesn't work? Most obviously, the footsteps.
We hook 0x292c. So we look at that in the english rom:

LD A,(D4E4h)

Now load the german one. It's something different. So, we'll take a guess and start at 2900.
at 2916, we see the call, ret nz, ld. We know two things.
1. The address we need for this one is 2916.
2. The ram address of d4e4 hasn't changed.
So, I'll open pokemon.lua and change 292c to 2916. My footsteps now work.

Next, the options menu.
There are two parts to this.
1. The code we hook at 2d63 to tell us whether we're in the options menu,
and 2. ram address cf81 for the menu header.
So, I take note of the code at english address 2d63:

LD (FF8Bh),A
LD A,(FF9Dh)
LD A,(FF8Bh)
RST 10

Let's try 2d40 in the german rom. One instruction too far, so we'll go to 2d3e.
Change 2d63 to 2d3e and try it, still doesn't work, but closer.
Maybe the bank address changed? Nope, speak in there, it doesn't get called when I press options.
There's another one, 2d4d right after it. Change that value again and now the options menu works.
What about the keyboard? Well, there's a line of code in the keyboard_showing function:

if screen.lines[17]:match("DEL   END") ~= nil then

We'll change that to

if screen.lines[17]:match("SCH ENDE") ~= nil then

Now the keyboard works.
I still don't know how to make this automatically detect what rom we're running and patch. IF I could, I could simply include a patch file for these 3 variables.

Thumbs up

2015-06-18 20:46:22 (edited by flameAlchemist 2015-06-18 21:53:14)

can i get any of the other pokemon games to work with this,?

Thumbs up

2015-06-18 21:10:04

the scrips don't tell you what level the opponent is that your battling.

Thumbs up

2015-06-18 21:11:29

I think it's shown on screen, hit t.

Thumbs up

2015-06-18 21:18:54

Hi all, I was able to download and set up everything for this game. Now, I have a bit of a difficulty. I have no idea on what to do. There seems to be no way to find out what the current objective is. Is there any way to find this out, or is there any way to add this feature? I love the idea if this and can't wait to really get in to it. thx a lot.

Thumbs up

2015-06-18 21:32:56

t does say what level the pokemon is. would it be possible for it to say it automatically with out pressing a button?

Thumbs up

2015-06-18 21:56:03

OK, so I think I'll have to wait till you find a way to solve this problem. Or is there anything I already could do?


2015-06-18 22:34:41

I wonder if this could be done with fire red and leaf green? That would be cool.

Thumbs up

2015-06-19 00:22:11

I'd really love this concept to be ported in to CastleVania.

Thumbs up

2015-06-19 02:03:48

@tspivey thanks you very much for the info.
Greetings and congratulations.

sorry my english, is not my native language.

2015-06-19 03:59:36

Thanks for the update to the script.
This is awesome tongue
I'm downloading it.

Thumbs up

2015-06-19 11:15:13

Well I still can't get this to work. I load and my reader doesn't even say ready. Highly disappointed. sad

Underworld Tech.
Accessibility from us, to you.
Visit us

2015-06-19 13:55:04

What a neat work! Thanks alot for giving me the oportunity to play the original game.
Best regards, Haramir.

The true blind is the one who refuses to see.

Thumbs up

2015-06-19 15:32:32

Is there any way at all we can do the Kaputo puzzle? I'm trying to find a decent walkthrough, but I have no idea to tell where the edges are to move them. I haven't looked much honestly, so I'll continue to do so. Just wondered if there was any way at all we could tell.


Thumbs up