http://www.dwelch.com/gba/roids.htm A static translation of Asteroids (6502) to ARM by D Welch. I found this by accident while looking for a harness for ...
Hello everyone. I was approached the other day by Graham to join this group. Yep, I did what I called a translation of Asteroids from the 6502 to ARM. ...
... can ... and ... I had a go with this to disassemble asteroids and it's definitely not bad, but I've seen much better. It messed up badly in some places...
What a great HOWTO. Very good info. I am new here but not to this topic. Yes, this approach works great! We (Eric Smith and I) used it before using a...
... has ... branch ... Acorn programmers routinely used bit immediate as a 1-byte skip instruction, i.e. a "Bit Immediate" whose operand was another (usually...
... opcodes as it is running. (note you need to build this list in such a way that you can add to it later). ... translated code for the opcodes in your opcode...
Only a partial implementation, sorry. In case you want to try other compilers or check my numbers. http://www.dwelch.com/gba/three.zip Dont have ADS running...
... On the GP32, I don't think it's a problem. I ported Tailgunner the same way and it too is vector based and used a slow-ish processor, but it ran in ...
... Your asteroids translation looks to be quite close to fast enough for the GBA. Here's some ideas that might get you the rest of the way... #define...
I switched gears, I found some 6502 code that was certainly what the emulator I was using was derived from. So I started over with asteroids deluxe and this...
Nope, not complete, just barely started. I think I have a good 6502 skeleton to work from for those who are interested (and in case I give up and dont...
... Damn, I am running ahead of a hurricane here (sitting in my car with the internet on a cellphone) otherwise I'ld love to have a look at what you've done...
David's translation originally labelled every statement, but did not have any calculated jumps to those labels (ie he wasn't using GCC's non-standard extension...
David, have you worked out what the NMI code does in asteroids? There's three main styles of how timing is done: a) the 'main' program just sits in an infinite...
I've tweaked my dead-code elimination demo program so it can actually be used in a real translator, using David's 6502 as an example; here's the output of a...
I had an insight today which allows us to eliminate dead code without needing to identify jump targets or remove unused labels! Now, this does *not* help if...
I added labels back in as well as the case statements, which gives some useful error messages: gcc -o game game.c game.c: In function `game': game.c:20182:...
I assume you mean last flag update for EACH flag within an unbroken string of instructions. L_1000: Z flag n flag L_1003: z flag n flag L_1004: c flag L_1006:...
I play tested the emulator, did a long session, and tagged addresses that were the starts of opcodes. Then I simply grepped the code for PCSTART (branches) and...
I've been thinking about flags... You can rely heavily on lookup tables, eg for "ROL A" we could have A = P = ROL[P][A]; P >>= 8; (A is unsigned char and P...
... That's exactly what I meant, yes. ... This is what I'm working on at the moment. It looks good but the run-time response will tell the story... ... That...
Flag optimization is really just dependency analysis. If an instruction is dependent on a variable V then only it is dependent only on the most recent value...
I just put Eric Smith's and my vector sim code in the files repostitory. This was written some time ago. I did not include the roms directory as that would be...
... Lookup tables are almost never a good idea. The domains of most instructions are large enough that the associated tables will be huge. It also can use up...