[GBA] TI83 Emulator
Moderator: MaxCoderz Staff
Thanks to some lovely bugs in the GNU toolchain, it took forever to find an ARM assembly bug where an ADR instruction (PC Reletive) pointed to a destination too far, which for some reason did not cause an error. This had completely broken all memory writes.
Now to find more bugs...
Now to find more bugs...
You know your hexadecimal output routine is broken when it displays the character 'G'.
My IRQ code sucks. It triggers an interrupt every time it returns from an interrupt.
EDIT: nope, turned out to be that the Z80 core decreases PC by 1 after executing a HALT instruction, and I hadn't made the IRQ checker check if it had just executed a halt instruction.
EDIT: nope, turned out to be that the Z80 core decreases PC by 1 after executing a HALT instruction, and I hadn't made the IRQ checker check if it had just executed a halt instruction.
You know your hexadecimal output routine is broken when it displays the character 'G'.
Woot! It now runs the Bubble Bobble ROM.
Still doesn't boot TIOS yet. Now gotta add Keyboard support!
You know your hexadecimal output routine is broken when it displays the character 'G'.
Woot!
The culprit behind the failures? Messed up ld rr,(nnnn) instructions. Loaded the first byte correctly, failed to load the second.
Happened because there was SMS emulation cruft hiding in there. Was treating the first byte using the correct memory map, then assumed the second byte had a different memory map where the top 6 bits were used in the memory map table instead of the top 2 bits.
You know your hexadecimal output routine is broken when it displays the character 'G'.
Whoa that is cool... now if only I had a real Gameboy Advance.
"Python has dynamic typing, and dynamic binding, which means that not only does it make a great secretary, it is also pretty damn kinky." --Henry the Adequate
<My Artwork>
<My Artwork>
Would you like to try it out? I've released an extremely early build just to get feedback. Yes, this is extremely early. Does not support sending programs to emulator, or savestates. Only emulates a TI83.
Download version 0.00 (not kidding about that version number)
How to use:
* First append a TI83 rom image to the end of the .gba file, using something like "copy /b ti83emu.gba + ti83.rom ti83emu_rom.gba"
Keys:
SELECT: Toggle keyboard overlay
Keys (keyboard visible)
* Arrows: Move cursor
* (right now cursor is not displayed over arrow keys, just move it away a few times)
* A: Press that key
* B: Quick Keys
* Start: ENTER
* L: Alpha
* R: 2nd
Quick Keys: (Hold down B while keyboard visible)
* A: ENTER
* Arrow Keys: Arrow Keys
* (other keys same as keyboard visible)
Fullscreen Keys:
* Arrows: Arrows
* A: 2nd
* B: Alpha
Note that you need to press ON to boot the TIOS.
Download version 0.00 (not kidding about that version number)
How to use:
* First append a TI83 rom image to the end of the .gba file, using something like "copy /b ti83emu.gba + ti83.rom ti83emu_rom.gba"
Keys:
SELECT: Toggle keyboard overlay
Keys (keyboard visible)
* Arrows: Move cursor
* (right now cursor is not displayed over arrow keys, just move it away a few times)
* A: Press that key
* B: Quick Keys
* Start: ENTER
* L: Alpha
* R: 2nd
Quick Keys: (Hold down B while keyboard visible)
* A: ENTER
* Arrow Keys: Arrow Keys
* (other keys same as keyboard visible)
Fullscreen Keys:
* Arrows: Arrows
* A: 2nd
* B: Alpha
Note that you need to press ON to boot the TIOS.
You know your hexadecimal output routine is broken when it displays the character 'G'.