@Rayman said:
@Wuerfel_21 are there free cycles in your video drivers during blanking?
Looking for places to add some extra code…
Extra code to do what?
There's a bunch of places you can add code:
run_emulator main loop. This is where features like handling quit-to-menu and NVRAM persistence is handled. This is easiest because it's compiled Spin2, but doesn't exist in NeoYume! Tempest 2000 has a similar Spin2 main loop somewhere.
Input cog. If not using the USB driver, it's fairly easy to do many things in the input handling cog. Modifying the USB driver is harder, but since input handling is simple and similar between projects, this would be the most portable way to implement a background task.
Adding code to to MegaVGA/NeoVGA/MisoVGA/TempestVGA and friends is more tricky because there's a lot of timing going on and most code-paths are reused for many differently timed modes. The codebase is also slightly different for each project, despite attempts to sync them. I guess hooking the blankline_func (for outputting a front/back porch blank line) is the least dangerous.
I wouldn't recommend messing with any of the emulator lower code.
@Rayman said:
@Wuerfel_21 Do you have a recommendation for screen orientation?
Does this look good?
A screen should be oriented such that the picture appears the right way up, for some definition of right way.
If I see correctly, this is an adapter for the ER-TFTM023 breakout board. The big pin header is logically the bottom, even if the silk text disagrees. So this would have the bottom row of the display facing outwards from the mother board, for better or worse. Probably good for using it on the desk.
IIRC switching the screen orientation in software didn't work when I tried it, so you'd be stuck with that. Can give it another try though.
DISCTRL or MADCTL can be used to change screen orientation.
Vertical flip works by changing gate driver scan order -> works
Horizontal flip works by changing memory write addressing -> oops, ignored in memory bypass mode
Disabling memory bypass causes a different bug to appear (320th column is missing) and possibly causes latency (haven't confirmed that)
(Flipping vertically only inverts the chirality of all the text, so is not usable)
(Also lamo my browser's autocorrect dictionary doesn't know what chirality is)
Comments
Son is ok with screen size so might make mini console using it
Make make flip screen that bolts to bottom of snes gamepad
Any idea what freq range the audio is?
???
It's just normal audio
Need to pick out tiny speakers…
@Wuerfel_21 are there free cycles in your video drivers during blanking?
Looking for places to add some extra code…
Extra code to do what?
There's a bunch of places you can add code:
run_emulator
main loop. This is where features like handling quit-to-menu and NVRAM persistence is handled. This is easiest because it's compiled Spin2, but doesn't exist in NeoYume! Tempest 2000 has a similar Spin2 main loop somewhere.blankline_func
(for outputting a front/back porch blank line) is the least dangerous.@Wuerfel_21 Do you have a recommendation for screen orientation?
Does this look good?
A screen should be oriented such that the picture appears the right way up, for some definition of right way.
If I see correctly, this is an adapter for the ER-TFTM023 breakout board. The big pin header is logically the bottom, even if the silk text disagrees. So this would have the bottom row of the display facing outwards from the mother board, for better or worse. Probably good for using it on the desk.
IIRC switching the screen orientation in software didn't work when I tried it, so you'd be stuck with that. Can give it another try though.
Ok, thanks. Guess will try like this and see if it works. Think there's enough free pins to add USB and audio, but need to check...
I messed with the screen orientation again:
(Flipping vertically only inverts the chirality of all the text, so is not usable)
(Also lamo my browser's autocorrect dictionary doesn't know what chirality is)