A mod (jokingly) told me I had to make a Neo Geo Pocket emulator, so I intend to showcase the pain that has caused me. This was going to be a list of rants, but most of them were way too short, so enjoy this diary of things that made me go WTF instead. 10/18/2023 - Register Encoding I started work on this emulator recently. The TLCS-900/H is a really cool processor, but I want to personally murder whoever made the register encoding. My first encounter with it was this: Seems OK enough. 8 32-b...| kellanclark.github.io
In the process of High Level Emulating (HLE) the BIOS for my emulator, I noticed a lack of information on timings and unexpedted/undefined output. This page documents my (very limited) findings and gives me a place to rant about dumb things I found in the code. All code is from the disassembly at https://github.com/PikalaxALT/gba_bios SWI Functions Number Name Inputs Outputs 0x00 SoftReset none reset 0x01 RegisterRamReset none r0, r1, r2, r3 0x0B CpuSet r0, r1, r2 todo 0x0C CpuFastSet r0, r1,...| kellanclark.github.io
Why did I do this? Check out the GitHub page Intro/Context What are LDM and STM? Notes on the pipeline Where do we even start? Register Map Some building blocks Numbers Writing the Interpreter Dispatch Moving the Data Pointer Modifying Data Output Input Loops A Secret 9th Command Bootstrapping for the GBA Additional Links Intro/Context Thanks to making the program counter a general purpose register (henceforth referred to as pc or r15) and showing its actual (i.e. pipelined) value instead of ...| kellanclark.github.io